Referrer-Policy in Spring Boot

Referrer-Informationen per SecurityFilterChain kontrollieren -- mit referrerPolicy()-DSL und dem optimalen Policy-Wert für Ihre Anwendung.

Spring Boot · Schritt für Schritt

Referrer-Policy in Spring Boot

Referrer-Policy kontrolliert, welche Referrer-Informationen der Browser bei Navigationen und Requests mitsendet. Der Header ist mit 10 von 166 Punkten relevant im Wolf-Agents Web Security Check.

Spring Security setzt Referrer-Policy nicht automatisch. Konfigurieren Sie den Header explizit per referrerPolicy()-DSL in der SecurityFilterChain. Wolf-Agents empfiehlt strict-origin-when-cross-origin als sicheren Standard, der Analytics-Kompatibilitaet behaelt.

Der Referrer-Header kann sensible Informationen enthalten -- URLs mit Query-Parametern wie ?token=abc123 oder ?email=user@example.com. Ohne Referrer-Policy sendet der Browser die volle URL an Drittanbieter-Dienste. Das kann zu Datenlecks fuehren, die DSGVO und PCI DSS verletzen.

1 Schritt 1 von 3

Referrer-Policy konfigurieren

Verwenden Sie die referrerPolicy()-DSL mit dem Enum-Wert STRICT_ORIGIN_WHEN_CROSS_ORIGIN. Dieser Wert sendet bei Same-Origin-Requests die volle URL, bei Cross-Origin-Requests nur den Origin und bei Downgrade (HTTPS zu HTTP) gar nichts. Das ist der beste Kompromiss zwischen Datenschutz und Funktionalitaet.

SecurityConfig.java Produktiv
// SecurityConfig.java -- Referrer-Policy
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http)
        throws Exception {
    http.headers(headers -> headers
        .referrerPolicy(referrer -> referrer
            .policy(ReferrerPolicyHeaderWriter.ReferrerPolicy
                .STRICT_ORIGIN_WHEN_CROSS_ORIGIN))
    );
    return http.build();
}

// Verfuegbare Policy-Werte:
// NO_REFERRER, NO_REFERRER_WHEN_DOWNGRADE,
// SAME_ORIGIN, ORIGIN, STRICT_ORIGIN,
// ORIGIN_WHEN_CROSS_ORIGIN,
// STRICT_ORIGIN_WHEN_CROSS_ORIGIN (empfohlen),
// UNSAFE_URL
Enum-Werte mit Unterstrichen

Die ReferrerPolicy-Enum in Spring Security verwendet Unterstriche: STRICT_ORIGIN_WHEN_CROSS_ORIGIN. Der HTTP-Header wird automatisch in Kleinbuchstaben mit Bindestrichen ausgegeben.

2 Schritt 2 von 3

Header verifizieren

Pruefen Sie den Referrer-Policy-Header per curl. Der Wert muss einer der gueltigen Policy-Werte sein. Testen Sie mehrere Pfade -- auch API-Endpoints und Actuator -- um sicherzustellen, dass der Header konsistent auf allen Responses gesetzt ist.

Terminal Verifizierung
# Referrer-Policy pruefen
curl -sI http://localhost:8080 | grep -i referrer-policy

# Erwartete Ausgabe:
referrer-policy: strict-origin-when-cross-origin

# Testen mit verschiedenen Pfaden:
curl -sI http://localhost:8080/api/data | grep -i referrer-policy
curl -sI http://localhost:8080/actuator/health | grep -i referrer-policy
Der Wolf-Agents Web Security Check prueft diesen Header automatisch und bewertet ihn mit bis zu 10 Punkten.
3 Schritt 3 von 3

Policy-Optionen vergleichen

strict-origin-when-cross-origin ist der beste Kompromiss zwischen Sicherheit und Funktionalitaet. no-referrer bietet maximalen Schutz, bricht aber Analytics. Verwenden Sie niemals unsafe-url -- dieser Wert sendet die volle URL inklusive Query-Parametern an Dritte und kann zu erheblichen Datenlecks fuehren.

Policy-Vergleich Referenz
// Policy-Werte im Vergleich

// strict-origin-when-cross-origin (EMPFOHLEN)
// Same-Origin: volle URL
// Cross-Origin: nur Origin
// Downgrade: nichts

// no-referrer (maximaler Schutz)
// Alle Requests: nichts -- bricht Analytics

// same-origin (nur intern)
// Same-Origin: volle URL
// Cross-Origin: nichts

// unsafe-url (NIEMALS verwenden!)
// Alle Requests: volle URL inkl. Query-Parameter
Verwenden Sie Spring Profiles fuer umgebungsspezifische Header-Werte. Stellen Sie sicher, dass auf Produktion das korrekte Profil aktiv ist.

Häufige Fehler bei Referrer-Policy in Spring Boot

no-referrer bricht Analytics

no-referrer entfernt den Referer-Header komplett. Analytics-Tools koennen nicht erkennen, woher Besucher kommen. Verwenden Sie strict-origin-when-cross-origin.

Enum-Wert falsch geschrieben

Die ReferrerPolicy-Enum verwendet Unterstriche: STRICT_ORIGIN_WHEN_CROSS_ORIGIN. Ein Tippfehler fuehrt zu Kompilierungsfehlern.

Referrer-Policy fehlt auf statischen Ressourcen

Wenn Sie statische Ressourcen per web.ignoring() von Spring Security ausschliessen, fehlt der Header. Verwenden Sie stattdessen permitAll().

Meta-Tag ueberschreibt Header

Ein <meta name="referrer">-Tag im HTML kann die Header-basierte Policy ueberschreiben. Pruefen Sie Ihre Thymeleaf-Templates auf solche Meta-Tags und entfernen Sie diese.

Compliance-Relevanz

Referrer-Policy erfuellt Anforderungen mehrerer Compliance-Frameworks und ist besonders relevant fuer Anwendungen, die personenbezogene Daten in URLs enthalten.

PCI DSS 4.0 Anforderung 6.5.10 -- Kontrolle von Informationslecks
NIS2 Art. 21(e) -- Schutz personenbezogener Daten bei Übertragung
BSI APP.3.1 -- Minimierung von Informationslecks

Wie steht Ihre Domain bei Referrer-Policy?

Prüfen Sie es jetzt — kostenlos, ohne Registrierung, mit 166 Prüfpunkte.