Desfacerse de "vk.com/away.php" ou seguir as ligazóns dunha persoa sa

Ao facer clic nas ligazóns publicadas en VKontakte, notarás que, como noutras redes sociais, primeiro hai unha transición a unha ligazón "segura", despois da cal a rede social decide se o usuario debe ser permitido ou non. A maioría das persoas atentas notaron a aparición de "vk.com/away.php" en medio segundo na barra de enderezos do navegador, pero, por suposto, non lle concederon ningunha importancia.

Desfacerse de "vk.com/away.php" ou seguir as ligazóns dunha persoa sa

prehistoria

Un día, un certo programador, despois de completar outro proxecto, deuse conta de que estaba obsesionado co desexo de contarllo a todos. O proxecto estaba aloxado nun servidor cunha IP única, pero sen un nome de dominio. Polo tanto, creouse rapidamente un fermoso subdominio de terceiro nivel no dominio .ddns.net, que finalmente se utilizou como ligazón. 

Volvendo á publicación despois dun tempo, o programador descubriu que en lugar do sitio, se estaba abrindo un esbozo de VK, informando sobre a transición a un sitio inseguro:

Desfacerse de "vk.com/away.php" ou seguir as ligazóns dunha persoa sa

Parece que os propios usuarios intelixentes teñen dereito a decidir a que sitio deben ir e cal non, pero VKontakte pensa diferente e non ofrece ningunha oportunidade de seguir a ligazón sen muletas.

Que pasa

Esta implementación ten varias desvantaxes importantes:

  • Incapacidade para abrir un sitio sospeitoso. Como se indicou anteriormente, o usuario non ten forma de superar o esbozo. A única forma de abrir a ligazón é copiala e pegala na barra de enderezos.
  • Ralentiza a navegación por ligazóns. A velocidade de redirección depende do ping. En consecuencia, cun ping alto, pódense perder preciosos segundos de vida, o que, como sabemos, non é aceptable.
  • Seguimento da transición. Este método facilita a recollida de información sobre as accións dos usuarios, que, por suposto, é o que usa VK, engadindo á ligazón segura a identificación da publicación desde a que se fixo a transición.

Liberando a Django

A solución óptima para todos os problemas anteriores pode ser unha extensión do navegador. Por razóns obvias, a elección recae en Chrome. Hai un excelente no hub artigo Un artigo dedicado a escribir extensións para Chrome.

Para crear esa extensión, necesitaremos crear dous ficheiros nun cartafol separado: un json-Manifest e un ficheiro JavaScript para supervisar o enderezo URL actual.

Crea un ficheiro Manifest

O principal que necesitamos é darlle permiso á extensión para traballar con pestanas e asignar un script executable:

{
  "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 ficheiro js

Aquí todo é sinxelo: no evento chamado cando se crea unha nova pestana, engadimos unha comprobación para o enderezo url se comeza por "vk.com/away.php", entón substitúeo polo correcto, que está na solicitude 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});
		}
	});
});

Montaxe da extensión

Despois de asegurarse de que os dous ficheiros están no mesmo cartafol, abra Chrome, seleccione a pestana da extensión e prema en "Cargar extensión descomprimida". Na xanela que se abre, seleccione o cartafol do ficheiro estendido escrito e prema en Recoller. Listo! Agora todas as ligazóns como vk.com/away son substituídas polas orixinais.

En vez de unha conclusión

Por suposto, este tipo de esbozo salvou a moitas persoas de millóns de sitios fraudulentos, non obstante, creo que a propia xente ten dereito a decidir se facer clic nunha ligazón non segura ou non.
Por comodidade, publiquei o proxecto en GitHub.

Fonte: www.habr.com

Engadir un comentario