Referrer-Policy in Spring Boot
Referrer-Informationen per SecurityFilterChain kontrollieren -- mit referrerPolicy()-DSL und dem optimalen Policy-Wert für Ihre Anwendung.
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.
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 -- 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 Die ReferrerPolicy-Enum in Spring Security verwendet Unterstriche: STRICT_ORIGIN_WHEN_CROSS_ORIGIN. Der HTTP-Header wird automatisch in Kleinbuchstaben mit Bindestrichen ausgegeben.
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.
# 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 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-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 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.
Wie steht Ihre Domain bei Referrer-Policy?
Prüfen Sie es jetzt — kostenlos, ohne Registrierung, mit 166 Prüfpunkte.