Jälgides linke, mis on postitatud Vkontakte, võib märkida, et nagu ka teistes sotsiaalvõrgustikes, toimub esmalt üleminek 'turvalisele' lingile, pärast mida sotsiaalne võrguplats otsustab, kas lasta kasutaja edasi või mitte. Enamik tähelepanelikku inimesi on märganud poolsekundilist 'vk.com/away.php' ilmumist brauseri aadressiribal, kuid loomulikult ei ole nad sellele erilist tähelepanu pööranud.

Eelalugu
Ühel päeval, üks programmeerija, lõpetades taas ühe projekti, mõistis, et on vaimustuses soovist kõigile sellest rääkida. Projekt oli paigutatud serverisse unikaalse IP-ga, kuid ilma domeeninime. Seetõttu tehti kiiresti ilus kolmanda taseme subdomeen .ddns.net domeenis, mida lõpuks kasutati lingina.
Mõne aja pärast postituse juurde tagasi tulles avastas programmeerija, et saidi asemel avaneb Vkontakte'i teade, mis teavitab, et ollakse minemas ebausaldusväärsele saidile:

Tundub, et targad kasutajad peaksid ise otsustama, millisele lehele nad minna soovivad, kuid Vkontakte arvab teisiti ja ei paku mingit võimalust linki ilma igasuguste kiirteeta külastada.
Mis on valesti
Sellel lahendusel on mitmeid olulisi puudusi:
- Puudub võimalus avada kahtlane veebileht. Nagu eelnevalt mainitud, puudub kasutajal võimalus blokeeringust üle saada. Ainus võimalus link avada on see kopeerida ja kleepida aadressiriba.
- Aeglustab linkide avamist. Suunamise kiirus sõltub pingest. Vastavalt, kui ping on kõrge, võivad väärtuslikud elusekunded kaduma minna, mis, nagu me teame, on vastuvõetamatu.
- Pöörangute jälgimine. Selline meetod lihtsustab teabe kogumist kasutajate tegevuste kohta, millega Vkontakte kindlasti ka ära kasutab, lisades ohutule lingile postituse id, millelt suundumine toimus.
Vabastame Django
Optimaalseks lahenduseks kõikidele eespool loetletud probleemidele võib olla brauseri laiendus. Ilmselgetel põhjustel langenud valik Chrome'i kasuks. Habr's on suurepärane artikkel, mis käsitleb laiendite loomist Chrome'ile.
Selle laienduse loomiseks peame eraldi kaustas looma kaks faili: json-Manifest ja JavaScript-fail, et jälgida praegust URL-aadressi.
Loome Manifest faili
Peamine, mida me vajame — anda laiendusele luba töötada vahekaartidega ja määrata käitatav 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"
}
}
Loome js faili
Siin on kõik lihtne: kausta loomisel kutsume esile sündmuse, lisades URL-aadressi kontrolli, kui see algab «», siis asendame selle õige aadressiga, mis asub 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});
}
});
});
Kogume laienduse
Veendudes, et mõlemad failid asuvad samas kaustas, avame Chrome'i, valime laienduste vahekaardi ja klikime "Laadi vabalt laiendust". Avanevas aknas valime kirjutatud laienduse kausta ja klikime "Koguda". Valmis! Nüüd asendatakse kõik vk.com/away tüüpi lingid algsetega.
Kokkuvõtte asemel
Muidugi on selline tüüpi blokeeringud päästnud paljusid inimesi miljonitest petturitest veebilehtedest, kuid ma arvan, et inimesed peaksid ise otsustama, kas minna ebaturvalisele lingile või mitte.
Mugavuse huvides olen projekti paigutanud .
Allikas: habr.com
