A(被攻击网站) B(恶意攻击网站)
一、想要攻击得具备什么条件
- 用户已经登录A网站,并生成cookie信息(一般包含了一个session_id和服务端会话)
- B网站得有一个专门攻击A网站的脚本(这个脚本包含A网站的某个接口地址和请求参数)
- B网站必须诱导用户点击这个脚本才能攻击A网站(因为用户的浏览器存有cookie信息)
二、怎么防范
- 通过请求header的Referer参数判断是不是自己网站发起的请求。
- 通过token方式验证
-
在 HTTP 请求中以参数的形式加入一个随机产生的 token,并在服务器端建立一个拦截器来验证这个 token,
如果请求中没有token或者 token 内容不正确,则认为可能是 CSRF 攻击而拒绝该请求。
-
这种方法要比检查Referer 要安全一些,token 可以在用户登陆后产生并放于session之中,然后在每次请求时把token
从 session 中拿出,与请求中的 token 进行比对
-