CSRF
  Qd0Bxrb8H1Yu 2023年11月02日 33 0


原理

  • 跨站点请求伪造,攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作,比如以你的名义发送邮件、发消息,盗取你的账号,添加系统管理员,甚至于购买商品、虚拟货币转账等       

防御

  • 1、验证HTTP Referer 字段  但是Referer 的值是由浏览器提供的,但是每个浏览器对于 Referer 的具体实现可能有差别,并不能保证浏览器自身没有安全漏洞。如有些浏览器可以修改referer值,甚至有些组织担心,就会拒绝合法用户访问
  • 2、在请求地址中添加
  • 现在业界对CSRF的防御,一致的做法是使用一个Token(Anti CSRF Token)。

例子:

  • 1. 用户访问某个表单页面。
  • 2. 服务端生成一个Token,放在用户的Session中,或者浏览器的Cookie中。
  • 3. 在页面表单附带上Token参数。
  • 4. 用户提交请求后, 服务端验证表单中的Token是否与用户Session(或Cookies)中的Token一致,一致为合法请求,不是则非法请求。
  • 这个Token的值必须是随机的,不可预测的。由于Token的存在,攻击者无法再构造一个带有合法Token的请求实施CSRF攻击。另外使用Token时应注意Token的保密性,尽量把敏感操作由GET改为POST,以form或AJAX形式提交,避免Token泄露。
  • 注意:CSRF的Token仅仅用于对抗CSRF攻击。当网站同时存在XSS漏洞时候,那这个方案也是空谈。所以XSS带来的问题,应该使用XSS的防御方案予以解决。
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论