En cliquant sur les liens publiĂ©s sur VKontakte, on peut remarquer que, comme dans d'autres rĂ©seaux sociaux, il y a d'abord une redirection vers un lien « sĂ©curisĂ© », aprĂšs quoi le rĂ©seau social dĂ©cide s'il laisse l'utilisateur continuer ou non. La plupart des utilisateurs attentifs ont remarquĂ© l'apparition d'un instant « vk.com/away.php » dans la barre d'adresse du navigateur, mais, bien sĂ»r, n'y ont pas prĂȘtĂ© attention.

Contexte
Un jour, un programmeur, ayant terminĂ© un projet, a rĂ©alisĂ© 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. Il a donc rapidement créé un joli sous-domaine de troisiĂšme niveau dans le domaine .ddns.net, qui a finalement Ă©tĂ© utilisĂ© comme lien.Â
En revenant un certain temps plus tard à la publication, le programmeur a découvert qu'au lieu du site, un écran de garde de VK s'ouvrait, informant de la redirection vers un site non sécurisé :

On pourrait penser que les utilisateurs avertis ont le droit de dĂ©cider eux-mĂȘmes sur quel site ils souhaitent se rendre, mais VKontakte pense autrement et ne permet aucune option, sans astuces, pour visiter le lien.
Qu'est-ce qui ne va pas
Cette mise en Ćuvre prĂ©sente plusieurs inconvĂ©nients majeurs :
- Absence de possibilité d'ouvrir un site suspect. Comme mentionné précédemment, l'utilisateur n'a pas la possibilité de contourner l'écran de garde. Le seul moyen d'ouvrir le lien est de le copier et de le coller dans la barre d'adresse.
- Ralentit la redirection vers le lien. La vitesse de redirection dĂ©pend du ping. Ainsi, avec un ping Ă©levĂ©, des secondes prĂ©cieuses de vie peuvent ĂȘtre perdues, ce qui, comme nous le savons, est inacceptable.
- Surveillance des redirections. Cette méthode facilite la collecte d'informations sur les actions des utilisateurs, que VK utilise certainement, en ajoutant à l'URL sécurisée l'identifiant du post depuis lequel la redirection a été faite.
Libérons Django
La solution optimale Ă tous les problĂšmes mentionnĂ©s ci-dessus pourrait ĂȘtre une extension pour le navigateur. Pour des raisons Ă©videntes, le choix se porte sur Chrome. Sur Habr, il y a un excellent article consacrĂ© Ă l'Ă©criture d'extensions pour Chrome.
Pour créer cette extension, nous aurons besoin de créer dans un dossier séparé deux fichiers : un fichier JSON Manifest et un fichier JavaScript pour surveiller l'URL actuelle.
Créons le fichier Manifest
La principale chose dont nous avons besoin est de donner l'autorisation à l'extension de travailler avec les onglets et d'assigner le 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éons un fichier js
C'est assez simple : dans l'Ă©vĂ©nement dĂ©clenchĂ© lors de la crĂ©ation d'un nouvel onglet, nous ajoutons une vĂ©rification de l'adresse url, si elle commence par «», alors nous la remplaçons par la bonne, 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});
}
});
});
Assemblons l'extension
En vĂ©rifiant que les deux fichiers se trouvent dans le mĂȘme dossier, ouvrez Chrome, allez Ă l'onglet des extensions et cliquez sur « Charger l'extension non empaquetĂ©e ». Dans la fenĂȘtre qui s'ouvre, choisissez le dossier de l'extension que vous avez Ă©crite et cliquez sur assembler. C'est fait ! Maintenant, tous les liens de type vk.com/away sont remplacĂ©s par leurs originaux.
En conclusion
Bien sĂ»r, ce type de redirections a sauvĂ© beaucoup de gens de millions de sites frauduleux, cependant, je pense que les gens ont le droit de dĂ©cider eux-mĂȘmes s'ils veulent cliquer sur un lien non sĂ©curisĂ© ou non.
Pour votre commodité, j'ai hébergé le projet sur .
Source : habr.com
