spring-mvc-showcase 学习之 csrf 防范

CSRF(Cross-site request forgery)跨站请求伪造。

对于防范这种攻击最基本的做法是请求时先给浏览器返回一个token,以后的访问都需要带上这个token才能正常响应。至于该token是否与IP,SESSIONID相关联不得而知。

原理不做过多的研究,现在介绍如何通过配置spring来防范CSRF。

1: spring 及 spring-security 版本

spring-mvc-showcase 学习之 csrf 防范

2 : 配置

spring-mvc-showcase 学习之 csrf 防范

 

spring-mvc-showcase 学习之 csrf 防范

3:  通过上面的配置 发起会话时会生产 _csrf 对象

spring-mvc-showcase 学习之 csrf 防范

4: 请求url时需在Header头中设置token变量,否则会报错

spring-mvc-showcase 学习之 csrf 防范

 

spring-mvc-showcase 学习之 csrf 防范

 

5: 验证方法 将token设置为“111111”

spring-mvc-showcase 学习之 csrf 防范

 

最初的一些迷惑,点击大多数页面正常访问,只有几个页面报错,为什么会这样呢?

CSRF 防范为什么对get请求不起作用。

因为第一次get请求是不会带上任何token的,如果连get请求都验证的话意味着网站是无法访问的。

而且根据规范而言,get请求只是去服务器请求资源,不会修改任何资源。POST请求意味着要修改资源,因此必须对POST请求进行最基本的验证,比如请求Header头是否带有token。

 

 

 

 

转载于:https://my.oschina.net/qidis/blog/845533