Zum Hauptinhalt springen

Tabnabbing beheben: rel="noopener" bei externen Links richtig setzen

Tabnabbing entsteht durch target=_blank ohne rel=noopener: Fremde Seiten können dann auf Ihren Tab zugreifen. So erkennen und beheben Sie das Risiko einfach.

Links / iframes3 Min. LesezeitVeröffentlicht am Aktualisiert am
Inhaltsverzeichnis

Tabnabbing beheben: rel="noopener" bei externen Links richtig setzen

Ein Link, der mit einem Klick eine fremde Website in einem neuen Tab öffnet, gehört zu den Alltagswerkzeugen jeder Website — für Partnerseiten, Presseartikel oder externe Quellen. Fehlt bei diesem Link eine kleine, aber wichtige Absicherung, entsteht daraus eine reale Sicherheitslücke: Tabnabbing.

Was ist das Problem?#

Öffnet ein Link mit target="_blank" eine externe Seite in einem neuen Tab, erhält diese neue Seite standardmäßig über die JavaScript-Eigenschaft window.opener eine Referenz auf den Tab, aus dem sie geöffnet wurde. Eine Seite mit böswilliger Absicht kann diese Referenz nutzen, um den ursprünglichen Tab per window.opener.location auf eine andere — etwa gefälschte — Adresse umzuleiten, während der Nutzer im neuen Tab abgelenkt ist. Der Nutzer merkt davon zunächst nichts, weil der ursprüngliche Tab im Hintergrund weiterläuft.

Betroffen sind alle Links mit target="_blank", denen das Attribut rel="noopener" (oder rel="noreferrer", das den Effekt einschließt) fehlt — unabhängig davon, ob der Link im Fließtext, in der Navigation oder in einem Footer-Bereich steht.

Warum prüft EverAudit das?#

EverAudit analysiert das gerenderte DOM jeder gecrawlten Seite und identifiziert jeden Link mit target="_blank". Für jeden Treffer wird geprüft, ob das rel-Attribut noopener (oder noreferrer) enthält. Fehlt die Absicherung, meldet der Audit den Befund tabnabbing mit prio1 — also als „must-do" —, weil es sich um ein konkretes, technisch klar behebbares Sicherheitsrisiko handelt und nicht nur um eine Stilfrage.

Welche Auswirkung hat das?#

Technisch besteht das Risiko, dass ein Angreifer über eine kompromittierte oder böswillig gestaltete externe Zielseite den ursprünglichen Tab Ihrer Besucher umleitet — etwa auf eine Phishing-Seite, die täuschend echt aussieht. Für Ihre Besucher ist das schwer zu erkennen, weil der ursprüngliche Tab weiterhin die korrekte Adresse in der Adresszeile zeigt, bis er selbst umgeleitet wird. Für Ihre Website bedeutet ein ausgenutztes Tabnabbing-Risiko einen Vertrauensverlust bei Besuchern, die auf diese Weise auf eine gefälschte Seite geraten sind — selbst wenn Ihre eigene Seite technisch nicht kompromittiert wurde.

Wie beheben Sie Tabnabbing?#

Die Lösung ist unabhängig vom eingesetzten CMS immer dieselbe: Jedem Link mit target="_blank" das Attribut rel="noopener noreferrer" hinzufügen.

Manuell im HTML:

<a href="https://partner-seite.de" target="_blank" rel="noopener noreferrer">
  Zur Partnerseite
</a>

In Content-Management-Systemen: Die meisten CMS erzeugen target="_blank"-Links über den WYSIWYG-Editor oder ein Link-Feld im Backend. Prüfen Sie, ob die verwendete Editor-Komponente automatisch rel="noopener" ergänzt (viele moderne Editoren tun das inzwischen standardmäßig) — falls nicht, lässt sich das häufig zentral über eine Editor-Konfiguration oder ein Template nachrüsten, statt jeden Link einzeln zu bearbeiten.

Dynamisch erzeugte Links (JavaScript): Wird ein neuer Tab per window.open() geöffnet, lässt sich der opener-Zugriff zusätzlich per JavaScript unterbinden:

const win = window.open('https://beispiel.de', '_blank');
if (win) win.opener = null;

Als Nachrüstung über einen Post-Prozess: Läuft Content durch einen zentralen Renderer, lässt sich rel="noopener noreferrer" auch automatisiert bei jedem target="_blank"-Link ergänzen, etwa in der Ausgabefunktion, die HTML-Links generiert — so entsteht eine dauerhafte Absicherung, die neue Links direkt mit abdeckt.

Bereits vorhandene Links prüfen: Durchsuchen Sie den Quellcode Ihrer Seiten gezielt nach target="_blank" und kontrollieren Sie bei jedem Treffer, ob rel="noopener" oder rel="noreferrer" gesetzt ist. Ein automatisierter Website-Audit übernimmt diese Suche für die gesamte Website und listet jeden betroffenen Link mit Fundstelle auf.

Fazit#

Tabnabbing ist eine der wenigen Sicherheitslücken, die sich mit einer einzigen, immer gleichen Zeile Code beheben lässt: rel="noopener noreferrer" an jedem target="_blank"-Link. Der Aufwand ist gering, das Risiko real — deshalb stuft EverAudit diesen Befund als prio1 ein und meldet ihn bei jedem Audit-Lauf, bis alle betroffenen Links abgesichert sind.

Häufige Fragen

Was ist Tabnabbing?

Tabnabbing beschreibt eine Schwachstelle bei Links, die mit target="_blank" eine fremde Website in einem neuen Tab öffnen. Fehlt die Absicherung rel="noopener", erhält die geöffnete fremde Seite über die JavaScript-Eigenschaft window.opener eine Referenz auf Ihren ursprünglichen Tab und kann diesen unter Umständen umleiten.

Betrifft Tabnabbing nur alte Browser?

Nein. Moderne Browser setzen für Links per HTML zunehmend automatisch einen impliziten noopener-Schutz, doch das gilt nicht durchgehend für alle Auszeichnungsformen und JavaScript-erzeugte Links. Das explizite Setzen von rel="noopener noreferrer" bleibt daher die zuverlässige, browserunabhängige Absicherung.

Reicht rel="noreferrer" allein statt rel="noopener"?

rel="noreferrer" unterbindet zusätzlich die Übermittlung des Referrer-Headers und schließt den noopener-Effekt implizit mit ein, wirkt in der Praxis aber am zuverlässigsten in Kombination: rel="noopener noreferrer". So sind sowohl der Tab-Zugriff als auch die Referrer-Weitergabe abgedeckt.

Muss ich auch interne Links mit target=_blank absichern?

Bei internen Links auf Ihre eigene Domain besteht das Tabnabbing-Risiko technisch nicht, da Sie die Zielseite selbst kontrollieren. Als einheitliche Regel empfiehlt es sich trotzdem, rel="noopener" bei jedem target="_blank"-Link zu setzen, um keine Ausnahme im Code pflegen zu müssen.

Wie finde ich alle betroffenen Links auf meiner Website?

Ein automatisierter Audit durchsucht das gerenderte DOM jeder Seite nach target="_blank"-Attributen ohne begleitendes rel="noopener" und listet jeden Fundort auf. Manuell lässt sich das über die Entwicklertools des Browsers mit einer Suche nach target="_blank" im Quellcode nachvollziehen.

EverAudit Redaktion

Fachredaktion für Web-Qualität, Barrierefreiheit und DSGVO. Wir prüfen jeden Ratgeber gegen die Kriterien unserer Audit-Engine.