Pourquoi l'attribut target est-il dangereux ?

Je viens de lire un article très intéressant qui explique les raisons de la dangerosité de l'attribut target="_blank". Je me permet d'en faire une transcription à ma manière pour ceux qui ne speak pas la langue de Molière...

(o_O) ?

Cet attribut permet, au clic d'un visiteur sur un lien d'ouvrir un nouvel onglet. Vous l'avez déjà sans doute constaté lors de vos navigations ou utilisé lors de vos développements.

L'intérêt c'est de ne pas perturber la navigation du visiteur. Si par exemple, il est en train de remplir un formulaire d'inscription et que vous voulez lui faire lire des conditions générales.

Le problème avec cet attribut, c'est qu'il transmet à la page cible une variable qui fait référence à la page de référence.

Par exemple, vous vous trouvez sur une page (page1.html). Vous cliquez sur un lien qui pointe vers une autre page (page2.html). Lorsque vous arrivez sur la page2, un attaquant peut récupérer une variable (window.opener) et agir sur votre page de provenance.

Les exploitations sont multiples, phishing, click jacking, et j'en passe.

Vous allez me dire :

"Si je dirige mon visiteur sur ma page de conditions générales, où est le risque ?"

Et vous auriez raison de poser cette question... Mais la vérité est ailleurs...

Ça se complique lorsque l'on se rend compte que cette variable est disponible cross-domain...

Admettons que je sois le gestionnaire d'un site A (www.site-a.com). Je fais un lien en utilisant l'attribut target="_blank" vers un site B (www.site-b.com), alors le site B va avoir accès à notre fameuse variable...

Vu la fréquence d'utilisation de cet attribut je pense qu'il y en a certains qui s'amusent depuis pas mal de temps :-)

En tout cas, à partir de maintenant, je verrais ce petit attribut d'une autre manière... En tant que développeur, vous aussi vous devez changer vos habitudes, au moins pour les sites qui ne vous appartiennent pas.

Les premières remontées de ce bug auprès des différentes communautés en charges du développement des navigateurs datent de...

Les premiers tickets remontent à 2013...!

Le premier à l'avoir solutionné, c'est Chromium/Chrome/Opera.

Merci à l'auteur de l'article original.

Source :

Illustration de couverture - Pixabay