Deshacerse de “vk.com/away.php” o seguir enlaces de una persona sana

Al hacer clic en los enlaces publicados en VKontakte, notará que, como en otras redes sociales, primero hay una transición a un enlace "seguro", después de lo cual la red social decide si se le debe permitir al usuario continuar o no. Las personas más atentas notaron la aparición de medio segundo de "vk.com/away.php" en la barra de direcciones del navegador, pero, por supuesto, no le dieron ninguna importancia.

Deshacerse de “vk.com/away.php” o seguir enlaces de una persona sana

Prehistoria

Un día, cierto programador, después de haber completado otro proyecto, se dio cuenta de que estaba obsesionado por el deseo de contárselo a todos. El proyecto estaba alojado en un servidor con una IP única, pero sin nombre de dominio. Por lo tanto, rápidamente se creó un hermoso subdominio de tercer nivel en el dominio .ddns.net, que finalmente se utilizó como enlace. 

Al regresar a la publicación después de un tiempo, el programador descubrió que en lugar del sitio, se estaba abriendo un código auxiliar VK que informaba sobre la transición a un sitio inseguro:

Deshacerse de “vk.com/away.php” o seguir enlaces de una persona sana

Parecería que los propios usuarios inteligentes tienen derecho a decidir a qué sitio ir y cuál no, pero VKontakte piensa de otra manera y no brinda la oportunidad de seguir el enlace sin muletas.

Que esta mal

Esta implementación tiene varias desventajas importantes:

  • Incapacidad para abrir un sitio sospechoso. Como se indicó anteriormente, el usuario no tiene forma de superar el trozo. La única forma de abrir el enlace es copiarlo y pegarlo en la barra de direcciones.
  • Ralentiza la navegación de enlaces. La velocidad de redireccionamiento depende del ping. En consecuencia, con un ping alto, se pueden perder preciosos segundos de vida, lo que, como sabemos, no es aceptable.
  • Seguimiento de la transición. Este método facilita la recopilación de información sobre las acciones del usuario, que, por supuesto, es lo que usa VK, agregando al enlace seguro la identificación de la publicación desde la cual se realizó la transición.

Liberando a Django

La solución óptima a todos los problemas anteriores puede ser una extensión del navegador. Por razones obvias, la elección recae en Chrome. Hay uno excelente en el centro. artículo Un artículo dedicado a escribir extensiones para Chrome.

Para crear una extensión de este tipo, necesitaremos crear dos archivos en una carpeta separada: un json-Manifest y un archivo JavaScript para monitorear la dirección URL actual.

Crear un archivo de manifiesto

Lo principal que necesitamos es darle permiso a la extensión para trabajar con pestañas y asignar un script ejecutable:

{
  "manifest_version": 2,
  "name": "Run Away From vk.com/away",
  "version": "1.0",
  "background": {
    "scripts": ["background.js"]
  },
  "permissions": ["tabs"],
  "browser_action": {
    "default_title": "Run Away From vk.com/away"
  }
}

Crear un archivo js

Aquí todo es simple: en el evento llamado cuando se crea una nueva pestaña, agregamos una verificación de la dirección URL si comienza con "vk.com/away.php", luego reemplácelo con el correcto, que está en la solicitud GET:

chrome.tabs.onCreated.addListener( function (tabId, changeInfo, tab) {
	chrome.tabs.query({'active': true, 'lastFocusedWindow': true}, function (tabs) {
		var url = tabs[0].url;
		if (url.substr(0,23) == "https://vk.com/away.php"){
			var last = url.indexOf("&", 0)
			if(last == -1)last = 1000;
			var url = decodeURIComponent(url.substr(27, last-27));
			chrome.tabs.update({url: url});
		}
	});
});

Montaje de la extensión

Después de asegurarse de que ambos archivos estén en la misma carpeta, abra Chrome, seleccione la pestaña de extensión y haga clic en "Cargar extensión descomprimida". En la ventana que se abre, seleccione la carpeta del archivo extendido escrito y haga clic en Recopilar. ¡Listo! Ahora todos los enlaces como vk.com/away se reemplazan por los originales.

En lugar de una conclusión

Por supuesto, este tipo de código auxiliar ha salvado a muchas personas de millones de sitios fraudulentos; sin embargo, creo que las personas mismas tienen derecho a decidir si hacen clic en un enlace no seguro o no.
Para mayor comodidad, publiqué el proyecto en gitHub.

Fuente: habr.com

Añadir un comentario