Znebiti se »vk.com/away.php« ali slediti povezavam zdrave osebe

S klikom na povezave, objavljene na VKontakte, boste opazili, da tako kot v drugih družbenih omrežjih najprej pride do prehoda na "varno" povezavo, po kateri se družbeno omrežje odloči, ali naj se uporabniku dovoli naprej ali ne. Najbolj pozorni ljudje so opazili polsekundni pojav "vk.com/away.php" v naslovni vrstici brskalnika, vendar temu seveda niso pripisali nobenega pomena.

Znebiti se »vk.com/away.php« ali slediti povezavam zdrave osebe

prazgodovina

Nekega dne je neki programer, ko je dokončal še en projekt, spoznal, da je obseden z željo, da bi vsem povedal o tem. Projekt je gostoval na strežniku z edinstvenim IP-jem, vendar brez imena domene. Zato je v domeni .ddns.net hitro nastala čudovita tretjenivojska poddomena, ki je bila na koncu uporabljena kot povezava. 

Ko se je čez nekaj časa vrnil na objavo, je programer odkril, da se namesto spletnega mesta odpira škrbina VK, ki obvešča o prehodu na nevarno spletno mesto:

Znebiti se »vk.com/away.php« ali slediti povezavam zdrave osebe

Zdi se, da imajo pametni uporabniki sami pravico odločati, katero spletno stran naj obiščejo in katero ne, vendar VKontakte misli drugače in ne ponuja nobene možnosti, da bi sledili povezavi brez bergel.

Kaj je narobe

Ta izvedba ima več pomembnih pomanjkljivosti:

  • Nezmožnost odpiranja sumljivega mesta. Kot je navedeno zgoraj, uporabnik ne more premagati škrbine. Edini način, da odprete povezavo, je, da jo kopirate in prilepite v naslovno vrstico.
  • Upočasni navigacijo po povezavah. Hitrost preusmeritve je odvisna od pinga. V skladu s tem se lahko z visokim pingom izgubijo dragocene sekunde življenja, kar, kot vemo, ni sprejemljivo.
  • Spremljanje prehoda. Ta metoda olajša zbiranje informacij o dejanjih uporabnikov, kar seveda uporablja VK, ki varni povezavi doda ID objave, iz katere je bil opravljen prehod.

Osvoboditev Djanga

Optimalna rešitev za vse zgoraj naštete težave je lahko razširitev brskalnika. Iz očitnih razlogov je izbira padla na Chrome. Na pestu je odličen članek Članek o pisanju razširitev za Chrome.

Za ustvarjanje takšne razširitve bomo morali ustvariti dve datoteki v ločeni mapi: json-Manifest in datoteko JavaScript za spremljanje trenutnega naslova url.

Ustvarite datoteko manifesta

Glavna stvar, ki jo potrebujemo, je, da razširitvi damo dovoljenje za delo z zavihki in dodelimo izvedljiv skript:

{
  "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"
  }
}

Ustvari datoteko js

Tukaj je vse preprosto: v dogodku, ki se kliče ob ustvarjanju novega zavihka, dodamo preverjanje naslova url, če se začne z "vk.com/away.php", nato ga zamenjajte s pravilnim, ki je v zahtevi 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});
		}
	});
});

Sestavljanje podaljška

Ko se prepričate, da sta obe datoteki v isti mapi, odprite Chrome, izberite zavihek razširitve in kliknite »Naloži nepakirano razširitev«. V oknu, ki se odpre, izberite mapo zapisane razširjene datoteke in kliknite Zberi. pripravljena! Zdaj so vse povezave, kot je vk.com/away, zamenjane z originalnimi.

Namesto zaključka

Seveda je ta vrsta škrbine marsikoga rešila pred milijoni goljufivih strani, vendar verjamem, da se imajo ljudje sami pravico odločiti, ali bodo kliknili na nevarno povezavo ali ne.
Zaradi udobja sem projekt objavil na github.

Vir: www.habr.com

Dodaj komentar