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.

Spring Boot · Alle Kapitel
Spring Boot · Java-Framework

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.

Anleitungen

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.

Leitfaden Beginner

Implementierungs-Architektur

Alle Security Headers über SecurityFilterChain konsolidiert konfigurieren -- Spring Security 6.x Best Practices für Spring Boot 3.x.

35 Pkt Advanced

Content Security Policy (CSP)

XSS-Schutz per SecurityFilterChain und dynamische Nonces mit OncePerRequestFilter für Thymeleaf-Templates.

15 Pkt Beginner

HTTP Strict Transport Security

HSTS ist ein Spring Security Default -- Anpassung von max-age, includeSubDomains und Preload per SecurityFilterChain.

15 Pkt Intermediate

Sichere Cookie-Konfiguration

Session-Cookie-Attribute in application.yml und CookieSerializer -- Secure, HttpOnly, SameSite für JSESSIONID.

10 Pkt Beginner

Permissions Policy

Browser-APIs per SecurityFilterChain einschraenken -- Kamera, Mikrofon, Geolocation sperren in Spring Boot.

10 Pkt Beginner

Clickjacking-Schutz

Spring Security setzt X-Frame-Options: DENY als Default -- Anpassung auf SAMEORIGIN per frameOptions() Konfiguration.

10 Pkt Beginner

Referrer-Policy

Referrer-Informationen kontrollieren per SecurityFilterChain -- nicht als Spring Security Default enthalten.

10 Pkt Beginner

X-Content-Type-Options

Spring Security setzt nosniff als Default -- Verstaendnis der automatischen Konfiguration und Anpassungsoptionen.

30 Pkt Advanced

Cross-Origin Headers

CORP, COEP und COOP gegen Spectre-Angriffe per SecurityFilterChain -- Kompatibilität mit Spring Boot Actuator.

15 Pkt Intermediate

Subresource Integrity

Hash-Prüfung externer Scripts in Thymeleaf-Templates -- manuell oder über Maven/Gradle Build-Pipeline.

2 Pkt Beginner

security.txt

Kontaktdatei unter .well-known/ als statische Ressource oder per @Controller-Mapping in Spring Boot bereitstellen.

4 Pkt Intermediate

TLS & Zertifikate

TLS-Konfiguration in application.yml -- Keystore, Truststore und HTTPS-Redirect in Spring Boot konfigurieren.

8 Pkt Intermediate

Cache-Control

Spring Security setzt Cache-Control: no-cache als Default -- sicherheitsrelevante Anpassungen per SecurityFilterChain.

4 Pkt Advanced

Reporting API

Report-To und Reporting-Endpoints per SecurityFilterChain -- CSP-Violation-Reports empfangen und verarbeiten.

3 Pkt Beginner

Clear-Site-Data

Browser-Daten beim Logout loeschen per LogoutHandler oder OncePerRequestFilter in Spring Security.

4 Pkt Intermediate

Erweiterte Header

Origin-Agent-Cluster, HTTPS-Redirects und X-DNS-Prefetch-Control per SecurityFilterChain konfigurieren.

Schnellstart

In 3 Schritten zur sicheren Spring-Boot-Konfiguration

1

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.

2

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.

3

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.

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.