Sécurité Firefox: rel = noopener pour target = _blank

Mozilla teste actuellement une nouvelle fonctionnalité de sécurité dans Firefox Nightly qui ajoute rel = "noopener" automatiquement aux liens qui utilisent target = "_ blank".

Target = "_ blank" indique aux navigateurs d'ouvrir automatiquement la cible du lien dans un nouvel onglet du navigateur Web; sans l'attribut cible, les liens s'ouvriraient dans le même onglet, à moins que les utilisateurs n'utilisent la fonctionnalité de navigateur intégrée, par exemple en maintenant la touche Ctrl ou Maj enfoncée, pour ouvrir le lien d'une manière différente.

Rel = "noopener est pris en charge par tous les principaux navigateurs Web. Cet attribut permet de s’assurer que l’ouvre-fenêtre est nul dans les navigateurs modernes. Null signifie qu’il ne contient aucune valeur.

Si rel = "noopener" n'est pas spécifié, les ressources liées ont un contrôle total sur l'objet de fenêtre d'origine, même si les ressources sont d'origines différentes. Le lien de destination pourrait manipuler le document d'origine, par exemple le remplacer par un sosie pour le phishing, afficher une publicité dessus ou le manipuler de toute autre manière imaginable.

Vous pouvez consulter une page de démonstration sur l'abus de rel = "noopener" ici. Il est inoffensif mais souligne comment les sites de destination peuvent modifier le site d'origine si cet attribut n'est pas utilisé.

Rel = "noopener" protège le document d'origine. Les webmasters peuvent - et devraient - spécifier rel = "noopener" chaque fois qu'ils utilisent target = "_ blank"; nous utilisons déjà l'attribut sur tous les liens externes ici sur ce site.

En octobre, Apple a mis en place un changement dans Safari qui applique automatiquement rel = noopener à tout lien utilisant target = _blank.

La version nocturne de Firefox prend également en charge la fonctionnalité de sécurité. Mozilla veut collecter des données pour s'assurer que le changement ne casse rien d'important sur Internet.

La préférence dom.targetBlankNoOpener.enable contrôle la fonctionnalité. Il est uniquement disponible dans Firefox 65 et défini sur true par défaut (ce qui signifie que rel = "_ noopener" est ajouté).

Les utilisateurs de Firefox peuvent modifier leur préférence pour désactiver cette fonctionnalité. Bien que cela ne soit pas recommandé pour des raisons de sécurité, vous pouvez le faire si vous rencontrez des problèmes de compatibilité.

  1. Charger à propos de: config? Filter = dom.targetBlankNoOpener.enable dans la barre d'adresse du navigateur.
  2. Confirmez que vous serez prudent si l'invite d'avertissement est affichée.
  3. Double-cliquez sur la préférence.

Une valeur true signifie que rel = "noopener" est ajouté aux liens avec target = "_ blank", une valeur false qui n'est pas le cas.

Mozilla cible Firefox 65 pour la version stable. Les choses peuvent être retardées en fonction de problèmes qui peuvent être signalés ou remarqués. Firefox 65 sera disponible le 29 janvier 2019. (via Sören Hentzschel)