今天,让我们来谈谈什么是CSRF,它是用来做什么的一些信息。很多朋友对这个信息感兴趣。边肖今天整理了一些相关资料,希望能帮助到有需要的朋友。
CSRF(跨站请求伪造),中文名:跨站请求伪造,又称:一键攻击/会话骑行,缩写为:CSRF/XSRF。
跨站点请求伪造
跨站请求伪造(英文:Cross-site request forgery),也称为一键攻击或会话骑行,通常缩写为CSRF或XSRF,这是一种迫使用户对当前登录的Web应用程序执行无意操作的攻击方法。与跨站脚本(XSS)相比,XSS利用用户对指定网站的信任,而CSRF利用网站对用户网络浏览器的信任。
跨站请求攻击,简单来说就是攻击者通过一些技术手段,欺骗用户的浏览器访问一个他已经认证的网站,并运行一些操作(如发送邮件、发送消息,甚至是转账、购买商品等属性操作)。因为浏览器已经过认证,访问过的网站会被当作真实用户操作运行。这就利用了web中用户认证的一个漏洞:简单的认证只能保证请求来自用户的浏览器,而不能保证请求本身是用户自愿做出的。
CSRF能做什么?
你可以这样理解CSRF攻击:攻击者窃取你的身份并以你的名义发送恶意请求。CSRF能做的事情包括:以你的名义发邮件,发消息,盗取你的账号,甚至购买商品,虚拟货币转账……引发的问题包括:个人隐私泄露,财产安全。
CSRF脆弱性现状
CSRF的这种攻击方式是由国外安全人员在2000年提出的,而在中国,直到2006年才被注意到。2008年,NYTimes.com(纽约时报)、Metafilter(大型博客网站)、YouTube、百度HI等国内外多个大型社区和互动网站爆发CSRF漏洞…….现在网上很多网站还没有做好这方面的准备,这样才安全。
防御措施
检查推荐人字段
HTTP头中有一个Referer字段,用于指示请求来自哪个地址。处理敏感数据请求时,一般来说,Referer字段应该位于与请求地址相同的域名下。以上述银行操作为例。Referer字段的地址通常应该是转移按钮所在网页的地址,也应该位于www.leiue.com下。如果是来自www.leiue.com的请求攻击,Referer字段将是包含恶意URL的地址,并且不会位于该地址下。此时,服务器可以识别恶意访问。
这种方法简单易行,工作量低,在关键接入点只需一步验证。但是,这种方法有其局限性,因为它完全依赖于浏览器来发送正确的Referer字段。虽然http协议中明确定义了该字段的内容,但不能保证访问浏览器的具体实现,也不能保证浏览器中没有影响该字段的安全漏洞。还有一种可能性是,攻击者攻击一些浏览器并篡改它们的Referer字段。
添加验证令牌
因为CSRF的本质在于攻击者欺骗用户访问自己设置的地址,如果在访问敏感数据请求时,要求用户的浏览器提供不存储在cookie中、攻击者无法伪造的数据作为校验,那么攻击者就无法再运行CSRF攻击。这种数据通常是表单中的数据项。服务器生成并将其附加到表单中,其内容是一个伪随机数。当客户端通过表单提交请求时,这个伪随机数也被提交进行验证。
在正常访问期间,客户端浏览器可以正确地获取并返回这个伪随机数。然而,在来自CSRF的欺骗性攻击中,攻击者无法提前知道这个伪随机数的值,服务器会因为验证令牌的值为空或错误而拒绝这个可疑的请求。
以上是一些关于CSRF是什么和CSRF是用来做什么的信息。边肖整理的资料希望对童鞋们有所帮助。