关闭 csrf 攻击防御
大约 1 分钟
关闭 csrf 攻击防御
在 Spring Security 中,默认情况下启用了 CSRF(Cross-Site Request Forgery,跨站请求伪造)防护。这是一种常见的 Web 安全漏洞,攻击者通过伪造用户请求来执行恶意操作,通常通过在用户不知情的情况下向网站提交请求。Spring Security 默认启用 CSRF 防护,要求每个 POST 请求都携带 CSRF token。
1、默认登录页面
1.1、关闭前 HTML 源码

从观察可知
<input name="_csrf" type="hidden" value="58Dd5HeYeD-veeKNksCnh0zOjnem1U2LcFlJwKS62WG5zCc53vC8ghT8SwmCG4bpoe2T4yn8o06f5nSmE2F-pJKP4QTb_EFd" />
<button class="btn btn-lg btn-primary btn-block" type="submit">Sign in</button>
1.2、关闭后 HTML 源码

从源码可知,_csrf 隐藏输入框丢失
2、关闭 CSRF 攻击防御
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http
// 开启授权保护
.authorizeRequests(authorize -> authorize
.anyRequest()//对所有请求开启授权保护
.authenticated()//已认证的请求会被自动授权
)
.formLogin(withDefaults())//使用默认的表单授权方式
.httpBasic(withDefaults())//使用基本授权方式
.csrf(AbstractHttpConfigurer::disable)//关闭 csrf 攻击防御
;
return http.build();
}
3、源码参考
org.springframework.security.config.annotation.web.builders.HttpSecurity#csrf()
