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。