从Spring Security3.2开始,默认就会启用CSRF攻击。
Spring Security通过一个同步token的方式来实现CSRF防护。它会拦截状态变化的请求并检查CSRF token。如果请求不包含CSRF token,或token不能与服务器端的token相匹配,请求将会失败,并抛出CsrfException。Spring Security已经简化了将token放到请求的属性中这一任务:
- 使用JSP作为页面模板的话,要做的事非常类似:
如果使用Spring表单绑定标签的话,标签会自动为我们添加隐藏的CSRF token标签。
例如一个用from表单提交一个post的请求,想要通过验证必须添加上:
下面给一个例子:
如果上属例子中没有添加上第二行的代码,
则默认会被系统拦截,进入到预先设置的登录界面。