A scăpa de „vk.com/away.php” sau a urma link-urile de la o persoană sănătoasă

Făcând clic pe link-urile postate pe VKontakte, veți observa că, la fel ca în alte rețele sociale, mai întâi are loc o tranziție la un link „sigur”, după care rețeaua socială decide dacă utilizatorul ar trebui să fie permis în continuare sau nu. Cei mai atenți au observat apariția în jumătate de secundă a „vk.com/away.php” în bara de adrese a browserului, dar, desigur, nu i-au acordat nicio importanță.

A scăpa de „vk.com/away.php” sau a urma link-urile de la o persoană sănătoasă

preistorie

Într-o zi, un anumit programator, după ce a finalizat un alt proiect, și-a dat seama că era obsedat de dorința de a spune tuturor despre asta. Proiectul a fost găzduit pe un server cu un IP unic, dar fără nume de domeniu. Prin urmare, un subdomeniu frumos de nivel al treilea a fost creat rapid în domeniul .ddns.net, care a fost folosit în cele din urmă ca link. 

Revenind la postare după un timp, programatorul a descoperit că, în loc de site, se deschidea un stub VK, informând despre trecerea la un site nesigur:

A scăpa de „vk.com/away.php” sau a urma link-urile de la o persoană sănătoasă

S-ar părea că utilizatorii inteligenți au dreptul de a decide pe ce site ar trebui să meargă și pe care nu, dar VKontakte gândește diferit și nu oferă nicio oportunitate de a urma linkul fără cârje.

Ce s-a întâmplat

Această implementare are câteva dezavantaje semnificative:

  • Incapacitatea de a deschide un site suspect. După cum sa menționat mai sus, utilizatorul nu are nicio modalitate de a depăși ciotul. Singura modalitate de a deschide linkul este să îl copiați și să îl lipiți în bara de adrese.
  • Încetinește navigarea prin linkuri. Viteza de redirecționare depinde de ping. În consecință, cu un ping ridicat, se pot pierde secunde prețioase de viață, ceea ce, după cum știm, nu este acceptabil.
  • Monitorizarea tranziției. Această metodă facilitează colectarea de informații despre acțiunile utilizatorului, ceea ce, desigur, este ceea ce folosește VK, adăugând la linkul securizat id-ul postării de la care s-a făcut tranziția.

Eliberarea lui Django

Soluția optimă pentru toate problemele de mai sus poate fi o extensie de browser. Din motive evidente, alegerea cade pe Chrome. Există unul excelent pe hub articol Un articol dedicat scrierii extensiilor pentru Chrome.

Pentru a crea o astfel de extensie, va trebui să creăm două fișiere într-un folder separat: un json-Manifest și un fișier JavaScript pentru a monitoriza adresa URL curentă.

Creați un fișier Manifest

Principalul lucru de care avem nevoie este să acordăm extensiei permisiunea de a lucra cu file și să atribuim un script executabil:

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

Creați un fișier js

Totul este simplu aici: în cazul apelat când este creată o filă nouă, adăugăm o verificare pentru adresa URL dacă începe cu „vk.com/away.php", apoi înlocuiți-l cu cel corect, care se află în cererea GET:

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

Asamblarea extensiei

După ce v-ați asigurat că ambele fișiere se află în același folder, deschideți Chrome, selectați fila extensie și faceți clic pe „Încărcați extensia dezambalată”. În fereastra care se deschide, selectați folderul fișierului extins scris și faceți clic pe Collect. Gata! Acum toate linkurile precum vk.com/away sunt înlocuite cu cele originale.

În loc de concluzie

Desigur, acest tip de stub a salvat mulți oameni de milioane de site-uri frauduloase, cu toate acestea, cred că oamenii înșiși au dreptul de a decide dacă să facă clic pe un link nesigur sau nu.
Pentru comoditate, am postat proiectul pe github.

Sursa: www.habr.com

Adauga un comentariu