Wenn Sie auf auf Vkontakte gepostete Links klicken, können Sie sehen, dass, wie in anderen sozialen Netzwerken auch, zunächst ein Übergang zu einem „sicheren“ Link erfolgt, wonach das soziale Netzwerk entscheidet, ob der Benutzer weitergehen darf oder nicht. Die meisten aufmerksamen Leute bemerkten das halbsekundenlange Erscheinen von „vk.com/away.php“ in der Adressleiste des Browsers, legten aber natürlich keinen Wert darauf.
Vorgeschichte
Eines Tages erkannte ein gewisser Programmierer, nachdem er ein anderes Projekt abgeschlossen hatte, dass er von dem Wunsch besessen war, allen davon zu erzählen. Das Projekt wurde auf einem Server mit einer eindeutigen IP, aber ohne Domänennamen gehostet. Deshalb habe ich schnell eine schöne Subdomain der dritten Ebene in der Domain .ddns.net erstellt, die schließlich als Link verwendet wurde.
Als der Programmierer nach einiger Zeit zum Beitrag zurückkehrte, stellte er fest, dass anstelle der Site ein VK-Stub geöffnet wurde, der über den Übergang zu einer unsicheren Site informiert:
Es scheint, dass kluge Benutzer selbst das Recht haben, zu entscheiden, welche Seite sie besuchen und welche nicht, aber Vkontakte denkt anders und bietet keine Möglichkeit, dem Link ohne Krücken zu folgen.
Was ist los
Diese Implementierung weist mehrere erhebliche Nachteile auf:
- Die Unfähigkeit, eine verdächtige Website zu öffnen. Wie oben erwähnt, hat der Benutzer nicht die Möglichkeit, den Stub zu überwinden. Die einzige Möglichkeit, den Link zu öffnen, besteht darin, ihn zu kopieren und in die Adressleiste einzufügen.
- Verlangsamt die Verbindung. Die Weiterleitungsgeschwindigkeit hängt vom Ping ab. Dementsprechend können bei einem großen Ping wertvolle Sekunden des Lebens verloren gehen, was bekanntlich nicht akzeptabel ist.
- Übergangsüberwachung. Diese Methode erleichtert das Sammeln von Informationen über Benutzeraktionen, die VK natürlich verwendet, indem es dem sicheren Link die ID des Beitrags hinzufügt, von dem aus der Übergang durchgeführt wurde.
Django befreien
Die beste Lösung für alle oben genannten Probleme kann eine Browsererweiterung sein. Aus offensichtlichen Gründen fällt die Wahl auf Chrome. Es gibt ein tolles auf dem Hub
Um eine solche Erweiterung zu erstellen, müssen wir zwei Dateien in einem separaten Ordner erstellen: json-Manifest und eine JavaScript-Datei zur Überwachung der aktuellen URL-Adresse.
Erstellen Sie eine Manifestdatei
Das Wichtigste, was wir brauchen, ist, der Erweiterung die Berechtigung zum Arbeiten mit Tabs zu erteilen und ein ausführbares Skript zuzuweisen:
{
"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"
}
}
Erstellen Sie eine js-Datei
Hier ist alles einfach: Im Ereignis, das beim Erstellen eines neuen Tabs aufgerufen wird, fügen wir eine Prüfung für die URL-Adresse hinzu, wenn diese mit „“ beginnt.
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});
}
});
});
Wir sammeln die Verlängerung
Nachdem Sie sichergestellt haben, dass sich beide Dateien im selben Ordner befinden, öffnen Sie Chrome, wählen Sie die Registerkarte „Erweiterung“ und klicken Sie auf „Entpackte Erweiterung laden“. Wählen Sie im sich öffnenden Fenster den Ordner „Extended“ aus und klicken Sie auf „Sammeln“. Bereit! Jetzt werden alle Links wie vk.com/away durch die ursprünglichen ersetzt.
Statt einer Schlussfolgerung
Natürlich hat diese Art von Stub viele Menschen vor Millionen von Betrugsseiten bewahrt. Ich glaube jedoch, dass die Menschen das Recht haben, selbst zu entscheiden, ob sie einen unsicheren Link aufrufen oder nicht.
Der Einfachheit halber habe ich das Projekt auf gepostet
Source: habr.com