Débarrassez-vous de "vk.com/away.php" ou suivez les liens d'une personne en bonne santé

Lorsque vous cliquez sur les liens publiés sur Vkontakte, vous remarquerez que, comme dans d'autres réseaux sociaux, une transition vers un lien «sûr» se produit d'abord, après quoi le réseau social décide de laisser ou non l'utilisateur aller plus loin. Les personnes les plus attentives ont remarqué une apparition d'une demi-seconde de «vk.com/away.php» dans la barre d'adresse du navigateur, mais, bien sûr, n'y attachent aucune importance.



Contexte


Une fois, un certain programmeur, ayant terminé un autre projet, s'est rendu compte qu'il était obsédé par le désir 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, à la hâte, j'ai créé un beau sous-domaine de troisième niveau dans le domaine .ddns.net, qui a finalement été utilisé comme lien.

Après être revenu à la publication après un certain temps, le programmeur a constaté qu'au lieu du site, un stub VK s'ouvre, informant de la transition vers un site dangereux:



Il semblerait que les utilisateurs intelligents eux-mêmes aient le droit de décider vers quel site ils doivent aller et lesquels non, mais Vkontakte pense différemment et ne donne 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:

  • L'incapacité d'ouvrir un site suspect. Comme mentionné 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 un lien. La vitesse de redirection dépend du ping. En conséquence, avec un grand ping, de précieuses secondes de vie peuvent disparaître, ce qui, comme nous le savons, n'est pas autorisé.
  • Surveillance de la conversion. Cette méthode facilite la collecte d'informations sur les actions des utilisateurs, qui, bien sûr, utilise VK, en ajoutant au lien sécurisé l'ID de la publication à partir de laquelle la transition a été effectuée.

Django gratuit


La meilleure solution à tous les problèmes ci-dessus peut être une extension de navigateur. Pour des raisons évidentes, le choix revient à Chrome. Sur un habr il y a un excellent article un article consacré à l'écriture d'extensions pour Chrome.

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

Créer un fichier manifeste


La principale chose dont nous avons besoin est de donner à l'extension l'autorisation de travailler avec des 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 le cas qui est appelé lors de la création d'un nouvel onglet, nous ajoutons une vérification de l'adresse URL, si elle commence par « vk.com/away.php », puis nous la remplaçons par la bonne qui se trouve dans la demande 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}); } }); }); 

Mettre 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 "Télécharger l'extension décompressée". Dans la fenêtre qui s'ouvre, sélectionnez le dossier écrit avancé et cliquez sur collecter. C'est fait! Désormais, tous les liens tels que vk.com/away sont remplacés par les liens d'origine.

Au lieu d'une conclusion


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

Source: https://habr.com/ru/post/fr453904/


All Articles