当前位置: 移动技术网 > IT编程>脚本编程>Python > CSRF_TOKEN

CSRF_TOKEN

2019年07月28日  | 移动技术网IT编程  | 我要评论

杨岳仕途微信传言,唯品会折扣网羽绒服,flv.js

目的是防御csrf攻击。

token就是令牌,最大的特点就是随机性,不可预测

csrf 攻击之所以能够成功,是因为黑客可以完全伪造用户的请求,该请求中所有的用户验证信息都是存在于 cookie 中,因此黑客可以在不知道这些验证信息的情况下直接利用用户自己的 cookie 来通过安全验证。要抵御 csrf,关键在于在请求中放入黑客所不能伪造的信息,并且该信息不存在于 cookie 之中。可以在 http 请求中以参数的形式加入一个随机产生的 token,并在服务器端建立一个拦截器来验证这个 token,如果请求中没有 token 或者 token 内容不正确,则认为可能是 csrf 攻击而拒绝该请求

这种方法要比检查 referer 要安全一些,token 可以在用户登陆后产生并放于 session 之中,然后在每次请求时把 token 从 session 中拿出,与请求中的 token 进行比对,但这种方法的难点在于如何把 token 以参数的形式加入请求。对于 get 请求,token 将附在请求地址之后,这样 url 就变成 http://url?csrftoken=tokenvalue。 而对于 post 请求来说,要在 form 的最后加上 <input type=”hidden” name=”csrftoken” value=”tokenvalue”/>,这样就把 token 以参数的形式加入请求了。

 

如果说这个token是指的用户登录的凭据,并用以维持登录状态的话,也就是说一个用户必须要输入用户名密码并验证通过后,服务器才会分配一个token,传回并储存在客户端作为凭证(同时储存在服务器上)。因此并不是每个人都可以获得这个token,只有能提供正确用户密码的客户端才可以。

之后每一次操作,都需要客户端向服务器提供这个token,以验证登录状态,如果考虑安全性的话,还可以增加对user-agent、ip等信息的验证。

 

csrf防范方法:

(1)验证码

(2)refer头

(3)token

 

说明:理解token的作用,他是一个随机的值是服务器端前一个请求给的,是一次性的,可以防止csrf这种恶意的携带自己站点的信息发请求或者提交数据(这个动作一般需要获取你的前一个请求的响应返回的token值,加大了难度,并不能完全杜绝)。
注意当然不能写到cookie中,因为浏览器在发出恶意csrf请求时,是自动带着你的cookie的。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网