blueredix logo
low missing-referrer-policy

Referrer-Policy nicht gesetzt

Ohne Referrer-Policy kann der Browser die vollständige URL jeder Seite an jeden Drittanbieter weitergeben, mit dem Ihre Seite verlinkt oder Ressourcen lädt. Lösung: eine Zeile.

Worum es geht

Lädt der Browser einer Besucherin etwas auf einer Seite (ein Bild, ein Skript, eine Schrift, einen geklickten Link), sagt er dem Ziel, woher der Request kam. Diese Angabe heißt Referrer. Per Default hängen Browser die URL der Seite (oder einen Teil davon) an jeden ausgehenden Request.

Ohne Referrer-Policy-Anweisung fallen Browser auf einen vernünftigen, aber nicht strengen Default zurück. In älteren Browsern und einigen alten User-Agents ist der Default sogar großzügiger: vollständige URL senden, inklusive Query-String oder Pfad, und der kann sensibel sein.

Warum das wichtig ist

Die meisten URLs einer Webseite sind unproblematisch (/ueber-uns, /produkte, /kontakt). Das Problem ist die kleine Zahl, die es nicht ist:

  • Passwort-Reset- und Magic-Login-Links enthalten einen einmaligen Token in der URL.
  • Authentifizierte Dashboards haben URLs, die die Struktur Ihres Admin-Bereichs preisgeben.
  • Teilbare Links zu privaten Dokumenten kodieren den Zugriff oft direkt in die URL.

Lädt eine dieser Seiten ein Drittanbieter-Skript, eine Schrift oder ein Bild, kann im Log des Drittanbieters ein funktionsfähiger Reset-Token, eine private Dokument-URL oder ein sensibler Suchbegriff landen. Mehrere große SaaS-Anbieter (HubSpot, Atlassian, andere) hatten in den letzten Jahren genau dieses Problem.

Eine Referrer-Policy ist ein Ein-Zeilen-Auffangnetz, das den Großteil dieser Lecks ohne funktionale Auswirkungen verhindert.

So beheben Sie das

Wer Ihren Webserver verwaltet, ergänzt eine einzelne Anweisung. Empfohlene Standardwahl:

Referrer-Policy: strict-origin-when-cross-origin

Schickt die volle URL nur bei Same-Origin-Requests, nur die Origin (ohne Pfad) bei Cross-Origin-Requests über HTTPS und gar nichts, wenn ein Downgrade auf reines HTTP im Spiel wäre. Entspricht modernen Browser-Defaults und ist die OWASP-Empfehlung.

Strengere Alternativen, falls Sie keine Referrer-Information brauchen:

  • same-origin: Referrer geht nur an die eigene Origin, nie an Dritte.
  • no-referrer: Referrer wird nie gesendet. Bricht einige Affiliate-Tracking- und Analytics-Setups, die auf Referrer basieren; unproblematisch, wenn keine Marketing-Tools darauf angewiesen sind.

Übliche Server-Snippets:

nginx:

add_header Referrer-Policy "strict-origin-when-cross-origin" always;

Apache:

Header always set Referrer-Policy "strict-origin-when-cross-origin"

Caddy:

header Referrer-Policy "strict-origin-when-cross-origin"

Ergänzende Maßnahme: keine Tokens in URLs

Eine Referrer-Policy ist ein sinnvolles Sicherheitsnetz; langfristig besser ist es allerdings, Tokens gar nicht erst in URLs zu legen. Flows mit einmaligem Token in der URL (Passwort-Reset, Magic-Link-Login, Share-by-Link) sollten den Token beim ersten Seitenaufruf aus der URL entfernen, so landet er weder in Browser-History, Bookmarks noch in Referrer-Headern. Wer den entsprechenden Teil Ihrer Anwendung geschrieben hat, kann das in wenigen Zeilen ergänzen.

Mehr dazu