java / intermediate
Snippet
Absicherung von HTTP-Response-Headern mittels SecurityFilterChain
Die Konfiguration defensiver HTTP-Response-Header in Spring Security schützt Anwendungen vor gängigen Schwachstellen wie Cross-Site-Scripting (XSS), Clickjacking und Downgrade-Angriffen. Modernes Spring Security nutzt Lambda-DSLs an der SecurityFilterChain-Bean, um Direktiven für Content Security Policy (CSP), HSTS und Frame-Options feingranular festzulegen.
snippet.java
java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@Configuration@EnableWebSecuritypublic class SecurityHeaderConfig {@Beanpublic SecurityFilterChain filterChain(HttpSecurity http) throws Exception {return http.headers(headers -> headers.contentSecurityPolicy(csp -> csp.policyDirectives("default-src 'self'; frame-ancestors 'none';")).httpStrictTransportSecurity(hsts -> hsts.includeSubDomains(true).maxAgeInSeconds(31536000)).frameOptions(HeadersConfigurer.FrameOptionsConfig::deny)).build();}}
spring
Erklärung
1
@Configuration
Kennzeichnet die Klasse als Quelle für Spring-Konfigurations-Beans.
2
.contentSecurityPolicy(csp -> csp.policyDirectives("default-src 'self'; frame-ancestors 'none';"))
Schränkt das Laden externer Ressourcen ein und verbietet das Einbetten in fremde iframes.
3
.httpStrictTransportSecurity(hsts -> hsts.includeSubDomains(true).maxAgeInSeconds(31536000))
Erzwingt HTTPS-Verbindungen für ein Jahr auf der Hauptdomain und allen Subdomains.
4
.frameOptions(HeadersConfigurer.FrameOptionsConfig::deny)
Weist Browser an, das Rendern in jeglichen Frame-Kontexten zu unterbinden, um Clickjacking zu verhindern.