72 votes

Lien avec target = "_ blank" et rel = "noopener noreferrer" toujours vulnérable?

Je vois des gens recommander que chaque fois que l'on utilise target="blank" dans un lien pour l'ouvrir dans une fenêtre différente, ils devraient mettre rel="noopener noreferrer" . Je me demande comment cela m'empêche d'utiliser les outils de développement dans Chrome, par exemple, et de supprimer l'attribut rel. Cliquez ensuite sur le lien ...

Est-ce un moyen facile de conserver la vulnérabilité?

91voto

Jon Uleis Points 10465

Vous avez peut-être l'incompréhension de la vulnérabilité. Vous pouvez en lire plus à ce sujet ici: https://www.jitbit.com/alexblog/256-targetblank---the-most-underestimated-vulnerability-ever/

Essentiellement, l'ajout d' rel="noopener noreferrer" de liens protège les utilisateurs de votre site contre le fait d'avoir le site que vous avez lié à potentiellement détournement de votre navigateur (via voyous JS).

Vous vous posez à propos de la suppression de cet attribut via les Outils de développement - qui ne ferait que potentiellement exposer vous (la personne d'interférer avec l'attribut) à la vulnérabilité.

44voto

Obsidian Age Points 26536

Liens avec d' target="_blank" sur eux sont vulnérables à avoir le référent de la page changées en arrière-plan pendant que l'attention de l'utilisateur est détournée par le nouvellement ouvert onglet. Ceci est connu comme l' inverse tabnapping:

Example malicious flow

La page de référence est stocké dans window.opener, et un site malveillant peut modifier ce à travers:

if (window.opener) {
   window.opener.location = "https://phish.example.com";
}

L'ajout d' rel="noopener noreferrer" résout ce problème dans tous les principaux navigateurs.

Notez que vous pourriez théoriquement supprimer l' rel côté client par le biais de la manipulation... mais pourquoi voudriez-vous? Tout ce que vous faites est délibérément de vous rendre vulnérable à l'attaque.

Les autres utilisateurs qui visitent le même site web (et de ne pas modifier leur propre code côté client) serait toujours en sécurité, comme le serveur continuera de servir l' rel="noopener noreferrer". Votre retrait ne s'applique à vous.

1voto

Kowsigan Atsayam Points 120

L'attribut tag d'ancrage rel = "noopener" ou rel = "noreferrer" améliore la sécurité du site Web, mais certaines personnes veulent l'ignorer car elles pensent que cela affectera l'optimisation du moteur de recherche de leur site Web. Ce n'est qu'un mythe. Il protège la confidentialité de l'audience de votre site Web et empêche les sites Web externes de diffuser du code malveillant.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X