"vk.com/away.php" vabanemine või linkide järgimine tervelt inimeselt

Klõpsates VKontakte'i postitatud linkidel, märkate, et nagu ka teistes suhtlusvõrgustikes, toimub esmalt üleminek "turvalisele" lingile, mille järel sotsiaalvõrgustik otsustab, kas kasutajat lubada edasi või mitte. Enamik tähelepanelikumaid inimesi märkas brauseri aadressiribale poole sekundi möödumist „vk.com/away.php” ilmumist, kuid loomulikult ei omistanud sellele mingit tähtsust.

"vk.com/away.php" vabanemine või linkide järgimine tervelt inimeselt

eelajalugu

Ühel päeval mõistis teatud programmeerija, kes oli teise projekti lõpetanud, et ta on kinnisideeks soovist sellest kõigile rääkida. Projekti majutati serveris, millel oli kordumatu IP, kuid ilma domeeninimeta. Seetõttu loodi domeenis .ddns.net kiiresti ilus kolmanda taseme alamdomeen, mida lõpuks kasutati lingina. 

Naastes mõne aja pärast postituse juurde, avastas programmeerija, et saidi asemel avaneb VK stub, mis teavitab üleminekust ebaturvalisele saidile:

"vk.com/away.php" vabanemine või linkide järgimine tervelt inimeselt

Näib, et nutikatel kasutajatel on endil õigus otsustada, millisele saidile minna ja millisele mitte, kuid VKontakte arvab teisiti ega anna mingit võimalust linki ilma karkudeta jälgida.

Mis viga

Sellel rakendusel on mitmeid olulisi puudusi:

  • Suutmatus kahtlast saiti avada. Nagu eespool öeldud, pole kasutajal mingit võimalust tüngast üle saada. Ainus viis lingi avamiseks on selle kopeerimine ja aadressiribale kleepimine.
  • Aeglustab linkide navigeerimist. Ümbersuunamise kiirus sõltub pingist. Sellest tulenevalt võib kõrge pingiga kaotada väärtuslikke sekundeid elust, mis, nagu me teame, ei ole vastuvõetav.
  • Ülemineku jälgimine. See meetod muudab kasutaja toimingute kohta teabe kogumise lihtsamaks, mida VK loomulikult kasutab, lisades turvalisele lingile selle postituse id, millelt üleminek tehti.

Django vabastamine

Kõigi ülaltoodud probleemide optimaalne lahendus võib olla brauseri laiendus. Arusaadavatel põhjustel langeb valik Chrome'ile. Rummul on suurepärane artikkel Artikkel, mis on pühendatud Chrome'i laienduste kirjutamisele.

Sellise laienduse loomiseks peame praeguse URL-i aadressi jälgimiseks looma kaks faili eraldi kaustas: json-Manifest ja JavaScripti fail.

Looge manifesti fail

Peamine asi, mida vajame, on anda laiendusele luba vahekaartidega töötamiseks ja käivitatava skripti määramine:

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

Looge js-fail

Siin on kõik lihtne: uue vahekaardi loomisel kutsutavas sündmuses lisame URL-i aadressi kontrolli, kui see algab tähega "vk.com/away.php", seejärel asendage see õigega, mis on GET-päringus:

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

Laienduse kokkupanek

Kui olete veendunud, et mõlemad failid on samas kaustas, avage Chrome, valige laienduse vahekaart ja klõpsake nuppu "Laadi lahti pakkimata laiendus". Avanevas aknas valige kirjutatud laiendatud faili kaust ja klõpsake nuppu Kogu. Valmis! Nüüd on kõik lingid nagu vk.com/away asendatud algsete linkidega.

Selle asemel, et järeldus

Muidugi on seda tüüpi stub päästnud paljusid inimesi miljonite petusaitide eest, kuid usun, et inimestel on endil õigus otsustada, kas klõpsata ebaturvalisel lingil või mitte.
Mugavuse huvides postitasin projekti veebilehel github.

Allikas: www.habr.com

Lisa kommentaar