码迷,mamicode.com
首页 > 其他好文 > 详细

CSRF跨站请求伪造

时间:2019-10-09 12:08:50      阅读:102      评论:0      收藏:0      [点我收藏+]

标签:货币   har   add   web   下一步   field   意图   forum   防范   

CSRF
CSRF全拼为Cross Site Request Forgery,译为跨站请求伪造是一种对网站的恶意利用
CSRF指攻击者盗用了你的身份,以你的名义发送恶意请求。包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账......
造成的问题:个人隐私泄露以及财产安全。


CSRF攻击示意图
<ignore_js_op>技术图片

防范措施
     方法一
       对于web站点,将持久化的授权方法(例如cookie或者HTTP授权)切换为瞬时的授权方法(在每个form中提供隐藏field),这将帮助网站防止这些攻击。一种类似的方式是在form中包含秘密信息、用户指定的代号作为cookie之外的验证。大致步骤如下:
       1. 在客户端向后端请求界面数据的时候,后端会往响应中的 cookie 中设置 csrf_token 的值
       2. 在 Form 表单中添加一个隐藏的的字段,值也是 csrf_token
       3. 在用户点击提交的时候,会带上这两个值向后台发起请求
       4. 后端接受到请求,会做以下几件事件:
                (1) 从 cookie中取出 csrf_token
                (2) 从 表单数据中取出来隐藏的 csrf_token 的值
                (3) 进行对比
       5. 如果比较之后两值一样,那么代表是正常的请求,如果没取到或者比较不一样,代表不是正常的请求,不执行下一步操作


       方法二
       另一个可选的方法是“双提交”cookie。此方法只工作于Ajax请求,但它能够作为无需改变大量form的全局修正方法。如果某个授权的cookie在form post之前正被JavaScript代码读取,那么限制跨域规则将被应用。如果服务器需要在Post请求体或者URL中包含授权cookie的请求,那么这个请求必须来自于受信任的域,因为其它域是不能从信任域读取cookie的。与通常的信任想法相反,使用Post代替Get方法并不能提供卓有成效的保护。因为JavaScript能使用伪造的POST请求。尽管如此,那些导致对安全产生“副作用”的请求应该总使用Post方式发送。Post方式不会在web服务器和代理服务器日志中留下数据尾巴,然而Get方式却会留下数据尾巴。

CSRF跨站请求伪造

标签:货币   har   add   web   下一步   field   意图   forum   防范   

原文地址:https://www.cnblogs.com/heimaguangzhou/p/11640647.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!