0 Tage Serie
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
@EnableWebSecurity
public class SecurityHeaderConfig {
@Bean
public 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.