„target=_blank“ eine ungeahnte Sicherheitslücke.

alessio lin 236497 unsplash e1519481279686

Photo by Alessio Lin on Unsplash

Jeder der ein bisschen html kann, kennt den Tag target=_blank" in einem Link, die wenigsten kennen rel="noopener".

Ein normaler Link schaut z.B. so aus:
<a href="https://www.gsl-webservice.de">Link Text</a>
Klinkt man ihn an, läd das aktuelle Browserfesster den Inhalt dieser Seite. Wenn man externe Links setzen will, also auf der eigenen Webseite einen Link zu einer anderen Seite – möchte man den eigenen Besucher aber nicht an die externe Seite verlieren. Also setzt man einen TAG/Codezusatz, damit sich die fremde Seite in einem neuen Browser Tab/Fenster öffnet.

<a href="https://www.gsl-webservice.de" target="_blank" rel="noopener">Link Text</a>

Der Code Zusatz target=_blank sorgt dafür, dass die aktuelle Seite offen bleibt und der Link sich in einem neuen Tab öffnet.

Doch wer hätte es gedacht, diese Methode ist eine Sicherheitslücke. Beim öffnen des neuen Fensters oder Tabs wird hierzu vom Browser der Befehl window.opener ausgeführt. Dieser Befehl gibt dem neuen Fenster Zugriff auf das Quellfenster und kann mit dem JavaScript Befehl window.open.location = newURL den Link umleiten oder sogar den bestehenden Inhalt des Browserfensters verändern (Schadcode einschleusen).

Um diese Sicherheitslücke zu umgehen, setzt man einen weiteren TAG / Codezusatz mit dem Namen „noopener“,. das schaut so aus:
<a href="https://www.gsl-webservice.de" target="_blank" rel="noopener">Link Text</a>

Für bestehende, von Hand geschriebene Webseiten sucht man also alle Links die target="_blank" enthalten und ersetzt den Code durch target="_blank" rel="noopener"

Bei benutzten CMS Systemen ist dies schon aufwendiger. Für Wordpres gab es hierzu z.B. das Plugin Add Target Fixer.

WordPress hat aber nach all den Jahren,  im April 2017 ebenfalls reagiert. Mit WordPress Version 4.7.4 fügt WP jedem Link der das Attribut target="_blank" enthält, automatisch das Attribut rel="noopener" hinzu!