CSRF漏洞——原理及防御

CSRF漏洞原理

  •  CSRF(Cross Site Request Forgery, 跨站请求伪造)是一种网络的攻击方式,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF。
  •  CSRF漏洞是因为web应用程序在用户进行敏感操作时,如修改账号密码、添加账号、转账等,没有校验表单token或者http请求头中的referer值,从而导致恶意攻击者利用普通用户的身份(cookie)完成攻击行为。
  • 一次CSRF攻击的过程中,受害者需要依次完成两个步骤 :
  • 1.登录受信任网站A,并在本地生成Cookie 。
  • 2.在A的cookie存活期内,访问危险网站B。

CSRF高危触发点

  • 论坛交流
  • 用户中心
  • 反馈留言
  • 交易管理
  • 后台管理

CSRF漏洞危害

  • 1、CSRF漏洞会导致受害人在不知情的情况下向论坛发帖子、订阅邮件列表、网购或股票交易,或变更用户名或口令。对受到防火墙保护的所有web应用程序而言,CSRF攻击都能绕过防火墙攻击web应用。
  • 2、CSRF漏洞还可以和XSS等漏洞结合使用,从而进一步加大了该漏洞的危害。
  • 3、伪造HTTP请求进行未授权操作:
  •      篡改、盗取目标网站上的重要用户数据。
  •      未经允许执行对用户名誉或者资产有害的操作,比如:散播不良信息、进行消费等。
  •      如果通过使用社工等方式攻击网站管理员,会危害网站本身的安全性。
  • 4、作为其他攻击向量的辅助攻击手法,比如配合XSS。
  • 5、传播CSRF蠕虫。

漏洞防御方法

  • Referer验证
  • Token验证
  • 增加验证码验证

总结

  • CSRF攻击的核心是伪造请求,识别这种的攻击的重点就是判断当前操作是否伪造;通过在当前页面生成随机Token,后端业务逻辑在处理操作时,应该先校验Token的有效性,然后才能处理业务流程。尤其在核心业务中,采用Token+Referer的组合进行操作验证;采用验证码校验操作是因为攻击者无法预知验证码的值,进而无法构造有效的攻击;但毫无疑问,验证码会一定程度地影响用户体验,所以我们要在安全和用户体验之间找到一个平衡点。

你可能感兴趣的:(CSRF漏洞)