CSRF跨站请求伪造(CSRF)漏洞,漏洞检测说明参考,漏洞描述: 跨站请求伪造(CSRF)的是 Web 应用程序一种常见的漏洞,其攻击特性是危害性大但非常隐蔽,尤其是在大量 Web 2.0 技术的应用的背景下,CSRF 攻击完全可以在用户法毫无察觉的情况下发起攻击。国际上并未对 CSRF 攻击做出一个明确的定义,同时,攻击的发起手段方式繁多,下文会做详细介绍。可以解释的是发起的目标都是通过伪造一个用户请求,该请求不是用户想发出去的请求,而对服务器或服务来说这个请求是完全合法的一个请求,但是却完成了一个攻击者所期望的操作,比如添加一个用户到管理者的群组中,或将一个用户的现金转到另外的一个帐户中。 CSRF漏洞的危害: 攻击者利用CSRF漏洞盗用了你的身份,以你的名义发送恶意请求。CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账……造成的问题包括:个人隐私泄露以及财产安全。 修复方案建议: 目前业界服务器端防御CSRF攻击主要有三种策略:验证HTTP Referer字段,在请求地址中添加token并验证,在HTTP头中自定义属性并验证。下面分别对这三种策略进行简要介绍。 1. 验证HTTP Referer字段 根据HTTP协议,在HTTP头中有一个字段叫Referer,它记录了该HTTP请求的来源地址。在通常情况下,访问一个安全受限页面的请求必须来自于同一个网站。比如某银行的转账是通过用户访问http://bank.test/test?page=10&userID=101&money=10000页面完成,用户必须先登录bank. test,然后通过点击页面上的按钮来触发转账事件。当用户提交请求时,该转账请求的Referer值就会是转账按钮所在页面的URL(本例中,通常是以bank. test域名开头的地址)。而如果攻击者要对银行网站实施CSRF攻击,他只能在自己的网站构造请求,当用户通过攻击者的网站发送请求到银行时,该请求的Referer是指向攻击者的网站。因此,要防御CSRF攻击,银行网站只需要对于每一个转账请求验证其Referer值,如果是以bank. test开头的域名,则说明该请求是来自银行网站自己的请求,是合法的。如果Referer是其他网站的话,就有可能是CSRF攻击,则拒绝该请求。 2. 在请求地址中添加token并验证 CSRF攻击之所以能够成功,是因为攻击者可以伪造用户的请求,该请求中所有的用户验证信息都存在于Cookie中,因此攻击者可以在不知道这些验证信息的情况下直接利用用户自己的Cookie来通过安全验证。由此可知,抵御CSRF攻击的关键在于:在请求中放入攻击者所不能伪造的信息,并且该信息不存在于Cookie之中。鉴于此,系统开发者可以在HTTP请求中以参数的形式加入一个随机产生的token,并在服务器端建立一个拦截器来验证这个token,如果请求中没有token或者token内容不正确,则认为可能是CSRF攻击而拒绝该请求。 3. 在HTTP头中自定义属性并验证 自定义属性的方法也是使用token并进行验证,和前一种方法不同的是,这里并不是把token以参数的形式置于HTTP请求之中,而是把它放到HTTP头中自定义的属性里。通过XMLHttpRequest这个类,可以一次性给所有该类请求加上csrftoken这个HTTP头属性,并把token值放入其中。这样解决了前一种方法在请求中加入token的不便,同时,通过这个类请求的地址不会被记录到浏览器的地址栏,也不用担心token会通过Referer泄露到其他网站。
CSRF跨站请求伪造(CSRF)漏洞,漏洞检测说明参考,漏洞描述: 跨站请求伪造(CSRF)的是 Web 应用程序…
隐藏内容,支付积分阅读
已有90人购买此隐藏内容
隐藏内容,支付费用阅读
¥
已有86人购买此隐藏内容
隐藏内容,仅限以下用户组阅读
隐藏内容,登录后阅读
登录之后方可阅读隐藏内容
隐藏内容,评论后阅读
请在下面参与讨论之后,方可阅读隐藏内容
隐藏内容,加入圈子后阅读
您需要加入圈子之后才能查看帖子内容
您猜对了答案,下面是向您展示的隐藏信息:
[]
[¥]
向
提问:
隐藏内容,猜对答案后阅读
猜错啦:您选中的是「」,正确答案是:「」
多选人参与投票
单选人参与投票
PK人参与PK
·已选
已选·
投票后查看结果,您的选择是?
思想因碰撞产生火花,真理因辩论获得升华
热门评论
:
请先登录!
图片审查中...
登录之后回答问题,请先登录!
编辑答案:
我的回答:
最多上传一张图片和一个附件
x
x