漏洞修改

This commit is contained in:
jiang 2025-08-24 19:24:29 +08:00
parent 9c5284cc58
commit f475e0776e
1 changed files with 24 additions and 0 deletions

View File

@ -14,6 +14,7 @@ import org.springframework.security.config.annotation.web.configuration.EnableWe
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.config.http.SessionCreationPolicy;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.web.SecurityFilterChain;
import org.springframework.security.web.access.expression.DefaultWebSecurityExpressionHandler;
import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
@ -73,6 +74,29 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
public BCryptPasswordEncoder bCryptPasswordEncoder(){
return new BCryptPasswordEncoder();
}
@Bean
SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http
.headers(headers -> headers
// ClickJacking
.frameOptions(frame -> frame.deny())
// CSP 配置
.contentSecurityPolicy(csp -> csp
.policyDirectives("default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self'; frame-ancestors 'none';")
)
// 其他安全头
.xssProtection(xss -> xss.block(true))
.contentTypeOptions(withDefaults -> {
})
.httpStrictTransportSecurity(hsts -> hsts
.includeSubDomains(true)
.maxAgeInSeconds(31536000) // 1年
)
);
return http.build();
}
/**
* 注入自定义PermissionEvaluator
*/