CSRF攻击是什么

Fanly 问答 2020-08-31 01:12:01 阅读(...)

跨站请求伪造(Cross-site request forgery)通常缩写为CSRF或者XSRF, 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法,CSRF利用的是网站对用户网页浏览器的信任。

CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF

跨站请求伪造 Cross-site request forgery

跨站请求伪造(英语:Cross-site request forgery),也被称为 one-click attack 或者 session riding,通常缩写为 CSRF 或者 XSRF, 是一种挟制用户在当前已登录的 Web 应用程序上执行非本意的操作的攻击方法。跟跨网站脚本(XSS)相比,XSS 利用的是用户对指定网站的信任,CSRF 利用的是网站对用户网页浏览器的信任。

跨站请求攻击,简单地说,是攻击者通过一些技术手段欺骗用户的浏览器去访问一个自己曾经认证过的网站并运行一些操作(如发邮件,发消息,甚至财产操作如转账和购买商品)。由于浏览器曾经认证过,所以被访问的网站会认为是真正的用户操作而去运行。这利用了 web 中用户身份验证的一个漏洞:简单的身份验证只能保证请求发自某个用户的浏览器,却不能保证请求本身是用户自愿发出的。

CSRF 可以做什么

你这可以这么理解 CSRF 攻击:攻击者盗用了你的身份,以你的名义发送恶意请求。CSRF 能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账……造成的问题包括:个人隐私泄露以及财产安全。

CSRF 漏洞现状

CSRF 这种攻击方式在 2000 年已经被国外的安全人员提出,但在国内,直到 06 年才开始被关注,08 年,国内外的多个大型社区和交互网站分别爆出 CSRF 漏洞,如:NYTimes.com(纽约时报)、Metafilter(一个大型的 BLOG 网站),YouTube 和百度 HI……而现在,互联网上的许多站点仍对此毫无防备,以至于安全业界称 CSRF 为“沉睡的巨人”。

防御措施

检查 Referer 字段

HTTP 头中有一个 Referer 字段,这个字段用以标明请求来源于哪个地址。在处理敏感数据请求时,通常来说,Referer 字段应和请求的地址位于同一域名下。以上文银行操作为例,Referer 字段地址通常应该是转账按钮所在的网页地址,应该也位于 www.leixue.com 之下。而如果是 CSRF 攻击传来的请求,Referer 字段会是包含恶意网址的地址,不会位于 www.leixue.com 之下,这时候服务器就能识别出恶意的访问。

这种办法简单易行,工作量低,仅需要在关键访问处增加一步校验。但这种办法也有其局限性,因其完全依赖浏览器发送正确的 Referer 字段。虽然 http 协议对此字段的内容有明确的规定,但并无法保证来访的浏览器的具体实现,亦无法保证浏览器没有安全漏洞影响到此字段。并且也存在攻击者攻击某些浏览器,篡改其 Referer 字段的可能。

添加校验 token

由于 CSRF 的本质在于攻击者欺骗用户去访问自己设置的地址,所以如果要求在访问敏感数据请求时,要求用户浏览器提供不保存在 cookie 中,并且攻击者无法伪造的数据作为校验,那么攻击者就无法再运行 CSRF 攻击。这种数据通常是窗体中的一个数据项。服务器将其生成并附加在窗体中,其内容是一个伪随机数。当客户端通过窗体提交请求时,这个伪随机数也一并提交上去以供校验。

正常的访问时,客户端浏览器能够正确得到并传回这个伪随机数,而通过 CSRF 传来的欺骗性攻击中,攻击者无从事先得知这个伪随机数的值,服务端就会因为校验 token 的值为空或者错误,拒绝这个可疑请求。

0个人收藏 收藏

评论交流

泪雪默认头像 请「登录」后参与评论
  1. 加载中..

相关推荐

  • SameSite

    SameSite是什么

    SameSite是Cookie中的一个属性用来限制第三方Cookie,从而减少安全风险。Chrome 51 开始,浏览器的Cookie新增加了一个SameSite属性,用来防止CSRF攻击和用户追踪。
  • Jsonp

    Jsonp 是什么

    JSONP是数据格式JSON的一种“使用模式”,可以让网页从别的网域要数据,利用script元素开放策略,网页可以从其他来源动态产生的JSON数据,而这种使用模式就是所谓的 JSONP。
  • Django

    Django 是什么

    Django是一个Python框架。开放源代码的Python Web应用框架,采用了MVT的软件设计模式,即模型Model,视图View和模板Template。使用这种架构,程序员可以方便、快捷地创建高品质、易维护、数据库驱动的应用程序。
  • 蚂蚁链 ANTCHAIN

    蚂蚁链是什么

    蚂蚁链(ANTCHAIN,原蚂蚁区块链)是蚂蚁集团代表性的科技品牌,致力于打造数字经济时代的信任新基建。重新定义商业社会的生产关系和价值重塑,让信任推动数字经济的发展,让世界迈入实现更高效、更透明、更普惠的新契约时代。
  • 花呗

    花呗最低还款怎么越还越多

    花呗最低还款之后越还越多,是因为每期都最低还款,会有新的账单金额计入最低还款金额中,因此最低还款金额就会越来越多。最低还款可以暂时缓解当前的还款压力,但是一直选择最低还款,用户后续要支付的利息将会越来越多。
  • 蚂蚁花呗 Ant Check Later

    花呗最低还款为什么会变高

    花呗最低还款是花呗提供的一种有价还款方式,自还款日的次日开始,最低还款后的剩余未还本金会按日利率0.05%循环计息,记入下月待还账单,直至剩余本金部分还清。