Jälgides linke, mis on postitatud Vkontakte, võib märgata, et nagu ka teistes sotsiaalmeedia platvormides, suundub külastaja esmalt "turvalisele" lingile, seejärel otsustab sotsiaalmeedia, kas lasta kasutaja edasi või mitte. Enamik tähelepanelikke inimesi on märganud poole sekundi pikkust "vk.com/away.php" ilmumist brauseri aadressiribal, kuid loomulikult ei ole nad sellele suurt tähelepanu pööranud.

Eellugu
Ühel päeval, pärast järjekordse projekti lõpetamist, mõistis üks programmeerija, et tal on tungavalt soov sellest kõigile rääkida. Projekt oli hostitud serveris unikaalse IP-ga, kuid ilma domeeninimega. Seetõttu loodi kiirelt ilus kolmandat taset alamdomeen .ddns.net domeenis, mida lõpuks kasutati lingina.
Mõni aeg hiljem postitusele tagasi minnes avastas programmeerija, et saidi asemel avaneb Vkontakte-saber, mis teavitab, et suundutakse ebaturvalisele veebisaidile:

Tõepoolest, arukad kasutajad peaksid ise saama otsustada, millistele veebisaitidele nad suunduvad ja millistele mitte, kuid Vkontakte mõtleb teisiti ja ei paku mingit võimalust linki avada ilma kõrvalmeetmeteta.
Mis on valesti
Sellel lahendusel on mitu tõsist puudust:
- Puudub võimalus avada kahtlane veebisait. Kuidas eelnevalt mainitud, ei ole kasutajal võimalik ületada takistust. Ainus võimalus lingi avamiseks on see kopeerida ja kanda brauseri aadressiriba.
- Aeglustab lingile suundumise protsessi. Suundumise kiirus sõltub pingest. Seega, kui ping on suur, võivad kaduda kallid sekundid elust, mis, nagu me teame, ei ole vastuvõetav.
- Lingipöörde jälgimine. See meetod lihtsustab teabe kogumist kasutajate tegevuse kohta, mida loomulikult kasutab Vkontakte, lisades turvalisele lingile postituse ID, millelt suundumine toimus.
Vabastage Django
Kõikide ülalmainitud probleemide optimaalseks lahenduseks võiks olla brauserilaiendus. Ilmselgetel põhjustel langeb valik Chrome'i kasuks. Habré on suurepärane artikkel, mis käsitleb laiendite loomist Chrome'ile.
Selle laiendi loomiseks peame looma eraldi kausta kaks faili: json-manifesti ja JavaScripti faili, et jälgida hetkel aktiivset url-aadressi.
Looge manifestifail
Peamine, mida vajame, on anda laiendile õigused vahekaartide kasutamiseks ja määrata täidetav skript:
{
"manifest_version": 2,
"name": "Jooksma vk.com/away-lt",
"version": "1.0",
"background": {
"scripts": ["background.js"]
},
"permissions": ["tabs"],
"browser_action": {
"default_title": "Jooksma vk.com/away-lt"
}
}
Loome js faili
Siin on kõik lihtne: sündmuses, mis käivitatakse uue vahekaartide loomisel, lisame url-aadressi kontrolli, kui see algab "", siis vahetame selle õige vastu, 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 laiendust
Veendudes, et mõlemad failid on samas kaustas, avame Chrome'i, valime laienduste vahekaardi ja klõpsame "Laadi lahti pakendatud laiendus". Avanevas aknas valime kirjutatud laienduse kausta ja klõpsame koguda. Valmis! Nüüd asendatakse kõik linkide vormingud vk.com/away algsete vastu.
Lõpetuseks
Muidugi on selline tüüpi pudelid päästnud palju inimesi miljonitest petusaitidest, kuid ma arvan, et inimesed peaksid ise otsustama, kas liikuda ebaturvalisele lingile või mitte.
Kasutusmugavuse huvides olen projekti paigutanud .
Allikas: habr.com
