At slippe af med "vk.com/away.php" eller følge links fra en sund person

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.

At slippe af med "vk.com/away.php" eller følge links fra en sund person

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:

At slippe af med "vk.com/away.php" eller følge links fra en sund person

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 artiklen En artikel dedikeret til at skrive udvidelser til Chrome.

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 "vk.com/away.php", erstat den derefter med den korrekte, som er i GET-anmodningen:

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å github.

Kilde: www.habr.com

Tilføj en kommentar