À propos de la faille de sécurité liée à target="_blank"

Classé dans Divers, Réflexions

Grâce à Nathanael CHERRIER et à quelques articles trouvés grâce à la communauté des Shaarlieurs, j'ai pris conscience de la faille de sécurité liée à target="_blank" et à son immense potentiel délétaire. J'ai donc décidé de créer un plugin pour shaarli afin que mes lecteurs en prennent également connaissance et s'en prémunisent.

Pour comprendre en quoi ça consiste vraiment, il suffit de suivre les liens suivants :

  1. http://bookmarks.ecyseo.net (ce lien contient l'attribut target="_blank"). Il va donc ouvrir un nouvel onglet
  2. http://bookmarks.ecyseo.net (ce lien ne contient aucun attribut. Avant de cliquer dessus, épinglez ce site dans votre navigateur.)
  3. http://bookmarks.ecyseo.net (ce lien contient l'attribut rel="noopener noreferrer". Avant de cliquer dessus, épinglez ce site dans votre navigateur.)

Avant de vous précipiter et de cliquer dessus, voyons d'abord ce qui va se passer.

Le premier lien contient un attribut target="_blank" qui permet au navigateur d'ouvrir un nouvel onglet pour afficher la page de destination.

Le but est de conserver la page d'origine.

Mais en faisant cela, si le lien pointe vers un site dont le propriétaire est malveillant, il est possible pour ce dernier de modifier la page d'origine (ici, la page que vous êtes actuellement en train de lire) pour lui injecter au hasard : un keylogger, une fausse page dont le design est similaire à cette page mais qui va enregistrer ce que vous faites via un script malveillant, etc.

Il y a trois méthodes pour s'en prémunir :

  1. bien vérifier l'url du site de départ (ici http://www.ecyseo.net) pour vérifier qu'elle n'a pas été modifiée,
  2. utiliser l'attribut rel dans chaque lien (voir exemple 3 ci-dessus)
  3. utiliser la fonction javascript suivante pour ouvrir des liens à la place de target :
function openNew(url) {
    var otherWindow = window.open();
    otherWindow.opener = null;
    otherWindow.location = url;
}

 

À noter que la faille est également présente si l'on utilise window.open ou si le site est épinglé par un navigateur (car si le site est épinglé, un nouvel onglet est ouvert).

En conclusion, faites très attention la prochaine fois que vous ouvrirez un lien.

3 commentaires

  1. Merci pour l'explication, je vais modifier tous mes liens pour mettre rel="noopener,noreferrer" et nofollow quand il faut..

  2. Merci pour l'information, je ne savais pas qu'on pouvait faire cela avec un target blank (modifier la page d'origine), j'avais lu que ce n'était pas une très bonne pratique de faire des liens en target blank mais je ne savais pas trop pourquoi, à part peut-être les bloqueurs de pop-ups qui pouvaient parfois bloquer la nouvelle fenêtre, là tu donnes une nouvelle raison pour laquelle cela peut être une mauvaise pratique de faire les liens en target blank.

  3. Ok merci pour la faille il faudrait retester voir si ça pause toujours un problème en tout cas encore merci pour l'info.

Écrire un commentaire

*


*

 Se rappeler de moi sur ce site

*
Quelle est la deuxième lettre du mot juuil ? :