Zbavujeme se "vk.com/away.php" nebo přechod na odkazy zdravého člověka

Při přechodu na odkazy umístěné na Vkontakte si můžete všimnout, že stejně jako v jiných sociálních sítích, nejprve dojde k přechodu na „bezpečný“ odkaz, po čemž sociální síť rozhoduje, zda pustit uživatele dál nebo ne. Většina pozorných lidí zaznamenala půlsekundové zobrazení „vk.com/away.php“ v adresním řádku prohlížeče, ale samozřejmě tomu nepřikládali žádný význam.

Zbavujeme se "vk.com/away.php" nebo přechod na odkazy zdravého člověka

Pozadí

Jednou, jistý programátor, dokončivší svůj další projekt, si uvědomil, že je posedlý touhou o něm všem vyprávět. Projekt byl umístěn na serveru s unikátní IP, ale bez doménového jména. Proto byl na rychlo vytvořen hezký subdomén třetí úrovně v doméně .ddns.net, která byla nakonec použita jako odkaz. 

Když se programátor po nějaké době vrátil k příspěvku, zjistil, že místo webové stránky se otevírá zástupce Vkontakte, informující o přechodu na nebezpečný web:

Zbavujeme se "vk.com/away.php" nebo přechod na odkazy zdravého člověka

Zdálo by se, že inteligentní uživatelé mají právo rozhodnout, na jaký web přecházejí a na jaký ne, nicméně Vkontakte si to myslí jinak a neposkytuje žádnou možnost, jak se bez obstrukcí dostat k odkazu.

Co je špatně

Taková realizace má několik zásadních nedostatků:

  • Není možné otevřít podezřelý web. Jak bylo zmíněno výše, uživatel nemá možnost překonat zástupce. Jediný způsob, jak otevřít odkaz, je zkopírovat ho a vložit do adresního řádku.
  • Zpomalí přechod na odkaz. Rychlost přesměrování závisí na pingu. Při vysokém pingu mohou být ztraceny vzácné sekundy života, což, jak víme, není přípustné.
  • Sledování přechodů. Tento způsob usnadňuje sběr informací o akcích uživatelů, což samozřejmě Vkontakte využívá, přidávajíc k bezpečnému odkazu ID příspěvku, ze kterého byl proveden přechod.

Osvobodíme Djangovi

Optimálním řešením všech výše uvedených problémů by mohl být prohlížečový rozšíření. Z očividných důvodů je volba zaměřena na Chrome. Na Habr je skvělý neaktuální statistika článek věnovaný psaní rozšíření pro Chrome.

Pro vytvoření takového rozšíření budeme potřebovat v samostatném adresáři vytvořit dva soubory: json-manifest a JavaScriptový soubor pro sledování aktuálního URL adresy.

Vytváříme manifestový soubor

Hlavní, co potřebujeme — dát rozšíření oprávnění pracovat s kartami a přiřadit prováděcí skript:

{
  "manifest_version": 2,
  "name": "Utečte z vk.com/away",
  "version": "1.0",
  "background": {
    "scripts": ["background.js"]
  },
  "permissions": ["tabs"],
  "browser_action": {
    "default_title": "Utečte z vk.com/away"
  }
}

Vytváříme soubor js

Je to jednoduché: do události, která se vyvolává při vytvoření nové záložky, přidáme kontrolu na url adresu, zda začíná na „vk.com/away.php“, pak ji nahradíme správnou, která se nachází v GET dotazu:

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});
		}
	});
});

Sestavujeme rozšíření

Jakmile se ujistíme, že oba soubory jsou ve stejné složce, otevřeme Chrome, vybereme záložku rozšíření a klikneme na „Načíst rozbalené rozšíření“. V otevřeném okně vybereme složku napsaného rozšíření a klikneme na sestavit. Hotovo! Nyní všechny odkazy typu vk.com/away jsou nahrazeny původními.

Na závěr

Samozřejmě, takový typ zástupců zachránil mnoho lidí před miliony podvodných webů, nicméně, myslím, že lidé mají právo rozhodnout, zda přejdou na nezabezpečený odkaz nebo ne.
Pro pohodlí jsem projekt umístil na github.

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster