Klikom na poveznice objavljene na VKontakte, primijetit ćete da, kao iu drugim društvenim mrežama, prvo postoji prijelaz na "sigurnu" vezu, nakon čega društvena mreža odlučuje hoće li korisnik biti dopušten dalje ili ne. Najpažljiviji ljudi primijetili su pojavu "vk.com/away.php" u adresnoj traci preglednika za pola sekunde, ali, naravno, nisu tome pridavali nikakvu važnost.
prapovijest
Jednog dana, određeni programer, nakon što je završio još jedan projekt, shvatio je da je opsjednut željom da svima ispriča o tome. Projekt je bio smješten na poslužitelju s jedinstvenim IP-om, ali bez naziva domene. Stoga je vrlo brzo stvorena prekrasna poddomena treće razine u domeni .ddns.net, koja je u konačnici iskorištena kao poveznica.
Vraćajući se na objavu nakon nekog vremena, programer je otkrio da se umjesto stranice otvara VK stubić koji obavještava o prijelazu na nesigurnu stranicu:
Čini se da pametni korisnici sami imaju pravo odlučiti na koju će stranicu ići, a na koju ne, ali VKontakte misli drugačije i ne pruža nikakvu priliku za praćenje veze bez štaka.
Što nije u redu
Ova implementacija ima nekoliko značajnih nedostataka:
- Nemogućnost otvaranja sumnjivog mjesta. Kao što je gore navedeno, korisnik nema načina da prevlada zastoj. Jedini način da otvorite vezu je da je kopirate i zalijepite u adresnu traku.
- Usporava navigaciju vezom. Brzina preusmjeravanja ovisi o pingu. Sukladno tome, s visokim pingom mogu se izgubiti dragocjene sekunde života, što, kao što znamo, nije prihvatljivo.
- Praćenje prijelaza. Ova metoda olakšava prikupljanje informacija o radnjama korisnika, što, naravno, koristi VK, dodajući sigurnoj vezi ID posta iz kojeg je izvršen prijelaz.
Oslobađanje Djanga
Optimalno rješenje za sve gore navedene probleme može biti proširenje preglednika. Iz očitih razloga, izbor pada na Chrome. Na čvorištu je odličan
Da bismo stvorili takvo proširenje, morat ćemo stvoriti dvije datoteke u zasebnoj mapi: json-Manifest i JavaScript datoteku za praćenje trenutne url adrese.
Stvorite datoteku manifesta
Glavna stvar koju trebamo je dati proširenju dozvolu za rad s karticama i dodijeliti izvršnu skriptu:
{
"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"
}
}
Stvorite js datoteku
Ovdje je sve jednostavno: u događaj koji se poziva kada se kreira nova kartica, dodajemo provjeru url adrese ako počinje s "
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});
}
});
});
Sastavljanje nastavka
Nakon što provjerite nalaze li se obje datoteke u istoj mapi, otvorite Chrome, odaberite karticu proširenja i kliknite "Učitaj raspakirano proširenje". U prozoru koji se otvori odaberite mapu napisane proširene datoteke i kliknite Prikupi. Spreman! Sada su sve veze poput vk.com/away zamijenjene izvornim.
Umjesto zaključka
Naravno, ova vrsta stubića spasila je mnoge ljude od milijuna lažnih stranica, međutim, vjerujem da ljudi sami imaju pravo odlučiti hoće li kliknuti na nesigurnu vezu ili ne.
Radi praktičnosti, objavio sam projekt na
Izvor: www.habr.com