Het verwijderen van “vk.com/away.php” of het volgen van links van een gezond persoon

Door op de links op VKontakte te klikken, zult u merken dat er, net als bij andere sociale netwerken, eerst een overgang naar een “veilige” link plaatsvindt, waarna het sociale netwerk beslist of de gebruiker verder moet worden toegelaten of niet. De meeste oplettende mensen merkten de verschijning van "vk.com/away.php" in de adresbalk van de browser op, maar hechtten er natuurlijk geen enkel belang aan.

Het verwijderen van “vk.com/away.php” of het volgen van links van een gezond persoon

prehistorie

Op een dag besefte een bepaalde programmeur, nadat hij een ander project had voltooid, dat hij geobsedeerd was door de wens om iedereen erover te vertellen. Het project werd gehost op een server met een uniek IP-adres, maar zonder domeinnaam. Daarom werd er snel een prachtig subdomein op het derde niveau aangemaakt in het .ddns.net-domein, dat uiteindelijk als link werd gebruikt. 

Toen hij na een tijdje terugkeerde naar de post, ontdekte de programmeur dat in plaats van de site een VK-stub werd geopend, die informeerde over de overgang naar een onveilige site:

Het verwijderen van “vk.com/away.php” of het volgen van links van een gezond persoon

Het lijkt erop dat slimme gebruikers zelf het recht hebben om te beslissen naar welke site ze moeten gaan en welke niet, maar VKontakte denkt daar anders over en biedt geen enkele mogelijkheid om de link zonder krukken te volgen.

Wat is er mis

Deze implementatie heeft een aantal belangrijke nadelen:

  • Onvermogen om een ​​verdachte site te openen. Zoals hierboven vermeld, heeft de gebruiker geen manier om de stomp te overwinnen. De enige manier om de link te openen is door deze te kopiëren en in de adresbalk te plakken.
  • Vertraagt ​​de linknavigatie. De omleidingssnelheid is afhankelijk van de ping. Dienovereenkomstig kunnen bij een hoge ping kostbare levensseconden verloren gaan, wat, zoals we weten, niet acceptabel is.
  • Transitiemonitoring. Deze methode maakt het gemakkelijker om informatie te verzamelen over gebruikersacties, wat uiteraard is wat VK gebruikt, door aan de beveiligde link de ID toe te voegen van het bericht van waaruit de overstap is gemaakt.

Django bevrijden

De optimale oplossing voor alle bovenstaande problemen kan een browserextensie zijn. Om voor de hand liggende redenen valt de keuze op Chrome. Er staat een uitstekende op de hub artikel Een artikel gewijd aan het schrijven van extensies voor Chrome.

Om zo'n extensie te maken, moeten we twee bestanden in een aparte map maken: een json-Manifest en een JavaScript-bestand om het huidige URL-adres te controleren.

Maak een manifestbestand

Het belangrijkste dat we nodig hebben is om de extensie toestemming te geven om met tabbladen te werken en een uitvoerbaar script toe te wijzen:

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

Maak een js-bestand

Alles is hier eenvoudig: in het geval dat wordt aangeroepen wanneer een nieuw tabblad wordt gemaakt, voegen we een controle toe voor het URL-adres als dit begint met “vk.com/away.php", vervang het dan door de juiste, die in het GET-verzoek staat:

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

Het monteren van de verlenging

Nadat u ervoor heeft gezorgd dat beide bestanden in dezelfde map staan, opent u Chrome, selecteert u het tabblad Extensie en klikt u op 'Uitgepakte extensie laden'. In het geopende venster selecteert u de map van het geschreven uitgebreide bestand en klikt u op Verzamelen. Klaar! Nu zijn alle links zoals vk.com/away vervangen door de originele.

In plaats Output

Natuurlijk heeft dit soort stub veel mensen gered van miljoenen frauduleuze sites, maar ik ben van mening dat mensen zelf het recht hebben om te beslissen of ze op een onveilige link klikken of niet.
Voor het gemak heb ik het project op GitHub.

Bron: www.habr.com

Voeg een reactie