Desfer-se de "vk.com/away.php" o seguir els enllaços d'una persona sana

En fer clic als enllaços publicats a VKontakte, notareu que, com en altres xarxes socials, primer hi ha una transició a un enllaç "segur", després del qual la xarxa social decideix si l'usuari s'ha de permetre o no. La gent més atenta va notar l'aparició de mig segon de "vk.com/away.php" a la barra d'adreces del navegador, però, per descomptat, no hi va donar cap importància.

Desfer-se de "vk.com/away.php" o seguir els enllaços d'una persona sana

prehistòria

Un dia, un determinat programador, després d'haver acabat un altre projecte, es va adonar que estava obsessionat amb el desig d'explicar-ho a tothom. El projecte estava allotjat en un servidor amb una IP única, però sense nom de domini. Per tant, es va crear ràpidament un bell subdomini de tercer nivell al domini .ddns.net, que finalment es va utilitzar com a enllaç. 

Tornant a la publicació després d'un temps, el programador va descobrir que, en lloc del lloc, s'estava obrint un taló de VK, informant sobre la transició a un lloc insegur:

Desfer-se de "vk.com/away.php" o seguir els enllaços d'una persona sana

Sembla que els mateixos usuaris intel·ligents tenen dret a decidir a quin lloc han d'anar i quin no, però VKontakte pensa de manera diferent i no ofereix cap oportunitat de seguir l'enllaç sense crosses.

Que passa

Aquesta implementació té diversos inconvenients importants:

  • Incapacitat per obrir un lloc sospitós. Com s'ha dit anteriorment, l'usuari no té cap manera de superar el taló. L'única manera d'obrir l'enllaç és copiar-lo i enganxar-lo a la barra d'adreces.
  • Redueix la navegació d'enllaços. La velocitat de redirecció depèn del ping. En conseqüència, amb un ping alt, es poden perdre preciosos segons de vida, cosa que, com sabem, no és acceptable.
  • Seguiment de la transició. Aquest mètode facilita la recopilació d'informació sobre les accions de l'usuari, que és, per descomptat, el que utilitza VK, afegint a l'enllaç segur l'identificador de la publicació des de la qual es va fer la transició.

Alliberant Django

La solució òptima a tots els problemes anteriors pot ser una extensió del navegador. Per raons òbvies, l'elecció recau en Chrome. N'hi ha un excel·lent al centre article Un article dedicat a escriure extensions per a Chrome.

Per crear aquesta extensió, haurem de crear dos fitxers en una carpeta separada: un json-Manifest i un fitxer JavaScript per supervisar l'adreça URL actual.

Creeu un fitxer Manifest

El principal que necessitem és donar permís a l'extensió per treballar amb pestanyes i assignar 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"
  }
}

Creeu un fitxer js

Aquí tot és senzill: en l'esdeveniment cridat quan es crea una pestanya nova, afegim una comprovació de l'adreça URL si comença amb "vk.com/away.php", després substituïu-lo per el correcte, que es troba a la sol·licitud 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});
		}
	});
});

Muntatge de l'extensió

Després d'assegurar-vos que tots dos fitxers es troben a la mateixa carpeta, obriu Chrome, seleccioneu la pestanya d'extensió i feu clic a "Carrega l'extensió descomprimida". A la finestra que s'obre, seleccioneu la carpeta del fitxer estès escrit i feu clic a Recollida. A punt! Ara tots els enllaços com vk.com/away es substitueixen pels originals.

En lloc d'una conclusió

Per descomptat, aquest tipus de talons ha salvat moltes persones de milions de llocs fraudulents, però crec que la gent mateixa té dret a decidir si fer clic en un enllaç no segur o no.
Per comoditat, vaig publicar el projecte a GitHub.

Font: www.habr.com

Afegeix comentari