Firefox 79 bekommt implizites rel=noopener bei target=_blank

Du benötigst Hilfe bezüglich Firefox? Bitte stelle deine Frage im öffentlichen Bereich des Forums und nicht per Konversation an wahllos ausgesuchte Benutzer. Wähle dazu einen passenden Forenbereich, zum Beispiel „Probleme auf Websites“ oder „Erweiterungen und Themes“ und klicke dann rechts oben auf die Schaltfläche „Neues Thema“.

Die Verwendung von target=“_blank“ in Webseiten-Links ist nicht nur praktisch, um Seiten standardmäßig in einem neuen Tab öffnen zu lassen, es handelt sich dabei gleichzeitig auch um eine unterschätzte Sicherheitslücke. Eine Lösung dagegen ist die Verwendung von rel=“noopener“, was die meisten Webseitenbetreiber allerdings versäumen. In Zukunft soll Firefox diesen Zusatz automatisch annehmen, wenn target=“_blank“ verwendet wird.

Jeder Webentwickler kennt das target-Attribut mit seinem Wert _blank, um vom Benutzer geklickte Links auf Webseiten standardmäßig in einem neuen Tab statt im gleichen Tab aufrufen zu lassen. Was aber nur die Wenigsten wissen: es handelt sich dabei um eine Sicherheitslücke, welche Phishing ermöglicht. Die Lösung für Webseitenbetreiber ist einfach: wird target=“_blank“ verwendet, ist gleichzeitig auch noch rel=“noopener“ zu verwenden. Bonuspunkt: Die Verwendung von rel=“noopener“ liefert gleichzeitig auch noch einen Performance-Vorteil gegenüber dem Weglassen.

Das offensichtliche Problem an der Geschichte ist, dass zwar jeder Webentwickler das target-Attribut kennt, aber nur die wenigsten um die Notwendigkeit von rel=“noopener“ wissen, was in der Konsequenz bedeutet, dass die meisten Seiten im Web das zusätzliche Attribut für Links in neuen Tabs nicht verwenden.

Wenn der Entwickler einer Webseite target=“_blank“ verwendet und das entsprechende rel-Attribut nicht setzt, wird Firefox ab Version 79 automatisch annehmen, dass rel=“noopener“ gesetzt sein soll, womit die Sicherheitslücke auch ohne Aktion des Webentwicklers nicht mehr existiert. Soll das alte Verhalten in Kraft treten, muss der Webentwickler dieses in Zukunft explizit über rel=“opener“ aktivieren.

Das neue Verhalten ist bereits seit Version 65 in Nightly-Versionen von Firefox standardmäßig aktiviert. Da weitere Anpassungen seitens Firefox notwendig waren, schafft es diese Änderung aber erst mit Firefox 79 standardmäßig in die finale Version. Firefox 79 wird nach aktueller Planung am 28. Juli erscheinen.

Apple hat dieses Verhalten bereits in Safari 12.1 im März 2019 implementiert. Google plant, in diesem Punkt nachzuziehen.

Der Beitrag Firefox 79 bekommt implizites rel=noopener bei target=_blank erschien zuerst auf soeren-hentzschel.at.

Antworten 4

  • Zitat

    es handelt sich dabei gleichzeitig auch um eine unterschätzte Sicherheitslücke.

    Hallo Sören :)


    zunächst finde ich das auf jeden Fall eine sinnvolle Änderung :thumbup:Ich hoffe, ich blamiere mich jetzt nicht mit meiner Frage dazu. Worin genau besteht denn die Lücke? Ich kann mir das momentan nicht vorstellen.


    Gruß Ingo

  • Hallo,


    Im Artikel gibt es einen Link. ;)

    https://mathiasbynens.github.io/rel-noopener/


    Beantwortet der Link die Frage oder ist die Erklärung zu technisch? Ansonsten versuche ich mich an einer einfacheren Erklärung.

  • Bei mir läuft ein Script in Violentmonkey, dass alle Links umschreibt, selbst andere Scripte habe ich damit erweitert und auch Erweiterungen, wenn in meinen Möglichkeiten.


    Sicherheitslücke, da schreiben viele zu. Imo kann man trotzdem, also ohne, die Quelle Ausmachen.


    https://www.google.com/search?…ner+sicherheitsl%C3%BCcke

    Zitat

    Durch das Öffnen eines neuen Fensters oder Tabs wird vom Browser der Befehl window.opener ausgeführt. Zu diesem Zeitpunkt erhält das neue Fenster Zugriff auf das Quellfenster. Und genau hier kann ganz einfach mit dem JavaScript-Befehl window.open.location = newURL die Zielanfrage umgeleitet und sogar der bestehende Fensterinhalt geändert werden.


  • Im Artikel gibt es einen Link.

    Hallo Sören :)


    ups, sorry. Wer lesen kann...

    Beantwortet der Link die Frage oder ist die Erklärung zu technisch?

    Ich habe zwar von Web-Programmierung keine Ahnung. Aber ja, das reicht. Ich kann es mir jetzt in etwa vorstellen. Dankeschön :thumbup:


    Gruß Ingo

  • Diskutiere mit!