我们如何在spring-boot中使用spring-security来处理csrf攻击



Iam正在使用Spring安全性在Spring引导中开发web应用程序。

以下是我用于实现csrf 的代码

配置类。。。。

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity security) throws Exception {
// TODO Auto-generated method stub
security.httpBasic().disable();
security.authorizeRequests()
.antMatchers("/DDR/**").permitAll()
.antMatchers("/assets/**").permitAll();
}
}

在JSP 中添加了以下注释

<meta name="_csrf" content="${_csrf.token}" />
<meta name="_csrf_header" content="${_csrf.headerName}" />

获取js 中的值

var token = $("meta[name='_csrf']").attr("content");
var header = $("meta[name='_csrf_header']").attr("content");

最后在Ajax请求中添加了头

headers : {
"X-CSRF-TOKEN" : token
},

我们是否需要在服务器端(java端(进行任何其他编码来验证CSRF??还是由弹簧保安来处理??提前谢谢。

一切似乎都很好。默认情况下,使用Java配置启用CSRF保护。为了确保一切正常,您可以检查发送csrf头值的每个请求。此外,您应该尝试对要测试的应用程序进行csrf攻击。您可以创建一个虚拟应用程序,该应用程序调用postapi并检查虚拟应用程序中的响应。如果所有配置都正确,则应返回403。

最新更新