Ved at klikke på de links, der er lagt ud på VKontakte, vil du bemærke, at der som i andre sociale netværk først er en overgang til et "sikkert" link, hvorefter det sociale netværk beslutter, om brugeren skal have lov til yderligere eller ej. De fleste opmærksomme mennesker lagde mærke til det halve sekunds fremkomst af "vk.com/away.php" i adresselinjen i browseren, men tillagde det selvfølgelig ingen betydning.
forhistorie
En dag indså en bestemt programmør, efter at have afsluttet et andet projekt, at han var besat af ønsket om at fortælle alle om det. Projektet blev hostet på en server med en unik IP, men uden domænenavn. Derfor blev der hurtigt oprettet et smukt underdomæne på tredje niveau i .ddns.net-domænet, som i sidste ende blev brugt som et link.
Ved at vende tilbage til posten efter et stykke tid opdagede programmøren, at der i stedet for webstedet åbnede en VK-stump, der informerede om overgangen til et usikkert websted:
Det ser ud til, at smarte brugere selv har ret til at bestemme, hvilket websted de skal gå til og hvilket ikke, men VKontakte tænker anderledes og giver ikke mulighed for at følge linket uden krykker.
Hvad er der galt
Denne implementering har flere væsentlige ulemper:
- Manglende evne til at åbne et mistænkeligt websted. Som nævnt ovenfor har brugeren ingen mulighed for at overvinde stubben. Den eneste måde at åbne linket på er at kopiere og indsætte det i adresselinjen.
- Sænker linknavigationen. Omdirigeringshastigheden afhænger af ping. Derfor kan dyrebare sekunder af livet gå tabt med et højt ping, hvilket, som vi ved, ikke er acceptabelt.
- Overgangsovervågning. Denne metode gør det nemmere at indsamle oplysninger om brugerhandlinger, hvilket naturligvis er, hvad VK bruger, og tilføjer til det sikre link id'et for det indlæg, hvorfra overgangen blev foretaget.
Frigør Django
Den optimale løsning på alle ovenstående problemer kan være en browserudvidelse. Af indlysende grunde falder valget på Chrome. Der er en fremragende en på navet
For at oprette en sådan udvidelse skal vi oprette to filer i en separat mappe: en json-manifest og en JavaScript-fil for at overvåge den aktuelle url-adresse.
Opret en manifestfil
Det vigtigste, vi har brug for, er at give udvidelsen tilladelse til at arbejde med faner og tildele et eksekverbart script:
{
"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"
}
}
Opret en js-fil
Alt er simpelt her: i tilfældet kaldet, når en ny fane oprettes, tilføjer vi en check for url-adressen, hvis den starter med "
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});
}
});
});
Samling af tilbygningen
Når du har sikret dig, at begge filer er i samme mappe, skal du åbne Chrome, vælge udvidelsesfanen og klikke på "Indlæs udpakket udvidelse". I det vindue, der åbnes, skal du vælge mappen med den skrevne udvidede fil og klikke på Saml. Parat! Nu er alle links som vk.com/away erstattet med de originale.
I stedet for en konklusion
Selvfølgelig har denne type stub reddet mange mennesker fra millioner af bedrageriske sider, men jeg mener, at folk selv har ret til at bestemme, om de vil klikke på et usikkert link eller ej.
For nemheds skyld lagde jeg projektet på
Kilde: www.habr.com