版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yyy72999/article/details/80319546
CSRF(Cross Site Request Forgery)
- 跨站请求伪造。在用户不知情的情况下以用户的名义向有
CSRF
漏洞的网站发起攻击,有很大的危害性。 - 预防:在
header
中添加一个随机token
,和cookie
中的csrftoken
进行比较,如果不相同,则表示该请求是CSRF
攻击。 原理:网站可以伪造
header
中的东西,但不能读cookie
中的数据,而token
是个随机数,所以伪造的token
很难跟cookie
中的csrftoken
保持一致。 ###body 里面的csrf值 必须和cookie里面的值相等,这样才认为是合法的,没有用csrf之前:
- 请求一个转账安全的转账页面 -> 登陆账号 -> 登陆成功 -> 设置
cookie
-> 转账成功 -> 未退出; - 请求一个危险的图片网站 -> 每一次刷新 -> 危险网站页面会隐藏一个
html
的iframe
表单 ,action
请求到 转账页面地址 -> 转账目标用户为自己 -> 这样每一次刷新 都会隐匿式的提交到转账页面 - 属于危险网站借用用户的cookie去访问未退出的转账页面
- 请求一个转账安全的转账页面 -> 登陆账号 -> 登陆成功 -> 设置
防范原理:
- 不登陆或者退出
- 在表单页面添加一个随机的
token
然后每一次请求页面都会在cookie
中添加 一个随机token
对比 - HTTP 头中加
Refere
字段 - 在 HTTP 头中自定义属性并验证