Spring Boot -- Alle Security-Header-Anleitungen
Schritt-für-Schritt-Anleitungen für jeden Security Header in Spring Boot. SecurityFilterChain, OncePerRequestFilter und application.yml -- von HSTS in 5 Minuten bis CSP mit Nonces.
Security Headers in Spring Boot -- SecurityFilterChain als zentrale Konfiguration
Spring Boot mit Spring Security 6.x bietet eine integrierte Header-Verwaltung über die
SecurityFilterChain-API. Im Gegensatz zu vielen anderen Frameworks setzt Spring Security
bereits vier Header automatisch: Cache-Control, X-Content-Type-Options,
X-Frame-Options und X-XSS-Protection.
Für Header, die nicht automatisch gesetzt werden -- wie CSP, HSTS,
Permissions-Policy und Referrer-Policy -- konfigurieren Sie alles
in einer @Bean SecurityFilterChain-Methode. Für dynamische Header wie CSP-Nonces
verwenden Sie einen OncePerRequestFilter.
Wichtig: Spring Boot unterscheidet zwischen WebMVC (Servlet-basiert) und WebFlux (reaktiv). Die Header-Konfiguration unterscheidet sich grundlegend. Unsere Anleitungen decken beide Varianten ab, mit Fokus auf das gaengigere WebMVC.
Spring-Boot-Anleitungen nach Thema
Jede Anleitung erklaert einen Security Header Schritt für Schritt -- mit Spring-Boot-spezifischen Konfigurationen für SecurityFilterChain, application.yml und OncePerRequestFilter. Die Punkte zeigen den Einfluss auf Ihre Web Security Note.
Implementierungs-Architektur
Alle Security Headers über SecurityFilterChain konsolidiert konfigurieren -- Spring Security 6.x Best Practices für Spring Boot 3.x.
Content Security Policy (CSP)
XSS-Schutz per SecurityFilterChain und dynamische Nonces mit OncePerRequestFilter für Thymeleaf-Templates.
HTTP Strict Transport Security
HSTS ist ein Spring Security Default -- Anpassung von max-age, includeSubDomains und Preload per SecurityFilterChain.
Sichere Cookie-Konfiguration
Session-Cookie-Attribute in application.yml und CookieSerializer -- Secure, HttpOnly, SameSite für JSESSIONID.
Permissions Policy
Browser-APIs per SecurityFilterChain einschraenken -- Kamera, Mikrofon, Geolocation sperren in Spring Boot.
Clickjacking-Schutz
Spring Security setzt X-Frame-Options: DENY als Default -- Anpassung auf SAMEORIGIN per frameOptions() Konfiguration.
Referrer-Policy
Referrer-Informationen kontrollieren per SecurityFilterChain -- nicht als Spring Security Default enthalten.
X-Content-Type-Options
Spring Security setzt nosniff als Default -- Verstaendnis der automatischen Konfiguration und Anpassungsoptionen.
Cross-Origin Headers
CORP, COEP und COOP gegen Spectre-Angriffe per SecurityFilterChain -- Kompatibilität mit Spring Boot Actuator.
Subresource Integrity
Hash-Prüfung externer Scripts in Thymeleaf-Templates -- manuell oder über Maven/Gradle Build-Pipeline.
security.txt
Kontaktdatei unter .well-known/ als statische Ressource oder per @Controller-Mapping in Spring Boot bereitstellen.
TLS & Zertifikate
TLS-Konfiguration in application.yml -- Keystore, Truststore und HTTPS-Redirect in Spring Boot konfigurieren.
Cache-Control
Spring Security setzt Cache-Control: no-cache als Default -- sicherheitsrelevante Anpassungen per SecurityFilterChain.
Reporting API
Report-To und Reporting-Endpoints per SecurityFilterChain -- CSP-Violation-Reports empfangen und verarbeiten.
Clear-Site-Data
Browser-Daten beim Logout loeschen per LogoutHandler oder OncePerRequestFilter in Spring Security.
Erweiterte Header
Origin-Agent-Cluster, HTTPS-Redirects und X-DNS-Prefetch-Control per SecurityFilterChain konfigurieren.
In 3 Schritten zur sicheren Spring-Boot-Konfiguration
Status prüfen
Starten Sie mit dem kostenlosen Web Security Check. 166 Prüfpunkte zeigen Ihnen in Sekunden, welche Header fehlen und wo Handlungsbedarf besteht.
SecurityFilterChain konfigurieren
Erstellen Sie eine zentrale SecurityConfig-Klasse
mit einer @Bean SecurityFilterChain-Methode. Diese konfiguriert
HSTS, X-Content-Type-Options und weitere
Header an einem Ort -- sauberer als verstreute Konfigurationen.
CSP mit Nonces einrichten
Die Content Security Policy konfigurieren
Sie über einen OncePerRequestFilter mit dynamischen Nonces. In Thymeleaf-Templates
verwenden Sie th:attr="nonce=${cspNonce}" für autorisierte Scripts.
Nicht Spring Boot? Andere Anleitungen verfügbar
Webserver
CMS & Shop-Systeme
Frameworks & Sprachen
Hosting-Anbieter
Wie sicher ist Ihre Website?
Prüfen Sie es jetzt — kostenlos, ohne Registrierung, mit 166 Prüfpunkte.
Häufig gestellte Fragen
Welche Security Headers setzt Spring Security standardmaessig?
Spring Security 6.x setzt vier Header automatisch: Cache-Control: no-cache, no-store, max-age=0, must-revalidate; X-Content-Type-Options: nosniff; X-Frame-Options: DENY; und X-XSS-Protection: 0. Alle weiteren Header wie CSP, HSTS, Permissions-Policy und Referrer-Policy müssen Sie manuell über SecurityFilterChain konfigurieren.
Wie konfiguriere ich CSP mit Thymeleaf-Nonces in Spring Boot?
Erstellen Sie einen OncePerRequestFilter, der pro Request einen Nonce generiert und als Request-Attribut setzt. In Thymeleaf-Templates verwenden Sie th:attr="nonce=${cspNonce}" für Script- und Style-Tags. Der Filter setzt den CSP-Header mit dem generierten Nonce automatisch in die Response.
Brauchen Spring Boot Actuator-Endpoints separate Security Headers?
Ja. Actuator-Endpoints laufen standardmaessig auf dem gleichen Port und verwenden die gleiche SecurityFilterChain. Für Produktion empfiehlt es sich, Actuator auf einen separaten Management-Port zu legen (management.server.port) oder eine eigene SecurityFilterChain mit @Order-Annotation für /actuator/**-Pfade zu erstellen.
Was ist der Unterschied zwischen WebMVC und WebFlux bei Security Headers?
Spring WebMVC (Servlet-basiert) verwendet SecurityFilterChain mit HttpSecurity. Spring WebFlux (reaktiv) verwendet SecurityWebFilterChain mit ServerHttpSecurity. Die Header-Konfiguration ist syntaktisch aehnlich, aber die Klassen und Beans unterscheiden sich grundlegend. Mischen Sie nie WebMVC- und WebFlux-Konfiguration.
Wie verwende ich unterschiedliche Security Headers pro Umgebung?
Nutzen Sie Spring Profiles: Erstellen Sie application-dev.yml, application-staging.yml und application-prod.yml mit unterschiedlichen Header-Werten. Alternativ können Sie @Profile-Annotationen an separaten @Configuration-Klassen verwenden, um umgebungsspezifische SecurityFilterChain-Beans zu definieren.