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.
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:
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
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 "
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
Allikas: www.habr.com