Se débarrasser de « vk.com/away.php » ou suivre les liens d'une personne en bonne santé

En cliquant sur les liens publiés sur VKontakte, vous remarquerez que, comme dans d'autres réseaux sociaux, il y a d'abord une transition vers un lien « sécurisé », après quoi le réseau social décide si l'utilisateur doit être autorisé davantage ou non. Les personnes les plus attentives ont remarqué l'apparition d'une demi-seconde de « vk.com/away.php » dans la barre d'adresse du navigateur, mais, bien sûr, n'y ont attaché aucune importance.

Se débarrasser de « vk.com/away.php » ou suivre les liens d'une personne en bonne santé

Préhistoire

Un jour, un certain programmeur, ayant réalisé un autre projet, s'est rendu compte qu'il était obsédé par l'envie d'en parler à tout le monde. Le projet était hébergé sur un serveur avec une IP unique, mais sans nom de domaine. Par conséquent, un magnifique sous-domaine de troisième niveau a été rapidement créé dans le domaine .ddns.net, qui a finalement été utilisé comme lien. 

De retour au message après un certain temps, le programmeur a découvert qu'au lieu du site, un stub VK s'ouvrait, informant de la transition vers un site non sécurisé :

Se débarrasser de « vk.com/away.php » ou suivre les liens d'une personne en bonne santé

Il semblerait que les utilisateurs intelligents eux-mêmes aient le droit de décider sur quel site ils doivent aller et lequel non, mais VKontakte pense différemment et n'offre aucune possibilité de suivre le lien sans béquilles.

Qu'est-ce qui ne va pas

Cette implémentation présente plusieurs inconvénients importants :

  • Impossibilité d'ouvrir un site suspect. Comme indiqué ci-dessus, l'utilisateur n'a aucun moyen de surmonter le talon. La seule façon d’ouvrir le lien est de le copier et de le coller dans la barre d’adresse.
  • Ralentit la navigation dans les liens. La vitesse de redirection dépend du ping. En conséquence, avec un ping élevé, de précieuses secondes de vie peuvent être perdues, ce qui, comme nous le savons, n'est pas acceptable.
  • Suivi des transitions. Cette méthode facilite la collecte d'informations sur les actions des utilisateurs, ce que VK utilise bien entendu, en ajoutant au lien sécurisé l'identifiant de la publication à partir de laquelle la transition a été effectuée.

Libérer Django

La solution optimale à tous les problèmes ci-dessus peut être une extension de navigateur. Pour des raisons évidentes, le choix se porte sur Chrome. Il y en a un excellent sur le hub article Un article dédié à l'écriture d'extensions pour Chrome.

Pour créer une telle extension, nous devrons créer deux fichiers dans un dossier séparé : un json-Manifest et un fichier JavaScript pour surveiller l'adresse URL actuelle.

Créer un fichier manifeste

La principale chose dont nous avons besoin est d'autoriser l'extension à travailler avec les onglets et d'attribuer un script exécutable :

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

Créer un fichier js

Tout est simple ici : dans l'événement appelé lors de la création d'un nouvel onglet, on ajoute une vérification de l'adresse url si elle commence par «vk.com/away.php", puis remplacez-le par le bon, qui se trouve dans la requête 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});
		}
	});
});

Assemblage de l'extension

Après vous être assuré que les deux fichiers se trouvent dans le même dossier, ouvrez Chrome, sélectionnez l'onglet d'extension et cliquez sur « Charger l'extension décompressée ». Dans la fenêtre qui s'ouvre, sélectionnez le dossier du fichier étendu écrit et cliquez sur Collecter. Prêt! Désormais, tous les liens comme vk.com/away sont remplacés par ceux d'origine.

Au lieu d'une conclusion

Bien sûr, ce type de talon a sauvé de nombreuses personnes de millions de sites frauduleux, mais je pense que les gens eux-mêmes ont le droit de décider de cliquer ou non sur un lien dangereux.
Pour plus de commodité, j'ai posté le projet sur github.

Source: habr.com

Ajouter un commentaire