您当前的位置: 首页 > 

星球守护者

暂无认证

  • 4浏览

    0关注

    641博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

CSRF的介绍和防御

星球守护者 发布时间:2020-12-24 14:32:31 ,浏览量:4

介绍

  • 攻击者盗用了你的身份,以你的名义发送恶意请求”——你可以这么理解CSRF攻击。
  • CSRF是一种依赖web浏览器的、被混淆过的代理人攻击,往往涉及到个人隐私泄露以及财产安全

原理

  • 由于浏览器的特性,会自动携带同一域名下的cookie到服务器,服务器端的某些功能验证cookie有效性后,就执行了该功能。
  • 主要是修改个人数据(横向越权),添加用户(纵向越权)等。

危害

  • CSRF一般用于操作用户的资源,
  • 使用用户的权限进行操作
  • 窃取用户的相关信息。

其实可以这么理解CSRF攻击:攻击者盗用了你的身份,以你的名义发送恶意请求。

与XSS比较

  • CSRF不比XSS更有危险性。
  • CSRF能完成的事,XSS更能够完成;
  • XSS能完成的事,CSRF不一定能做到。

利用方式

  • CSRF给电商用户新增默认收货地址、发微博、添加管理员等等,所有的敏感操作都可以是我们的攻击目标,
  • 也就是说,所有的敏感操作都需要进行CSRF的防护。
  • 用户账号授权相关的操作、二维码登陆、绑定第三方账号等,这些功能有CSRF的话,就直接被盗号了。

防御方案

  • CSRF的防护,主要是referer限制、token、或验证码
  • 甚至非常敏感的操作应该要使用短信验证这种。
  • 另外,防护手段可以加上一条:多使用post方式获取参数,进行敏感功能
  • 如果你的请求仅仅是ajax请求,那么还有些别的防护手段。比如校验X-Requested-With头
  • 跨域的form表单提交是伪造不了这个ajax请求头。
  • 甚至你可以在ajax中使用冷门的put请求,这个也是form表单的请求没能力做到的。
  • referer的防护要严格校验host,而不是简单的使用一个字符包含的检查。

企业级CSRF的最佳实践

  • 开发的话,所有的敏感请求都不要用get。
  • 对敏感功能进行来源和token的验证,最好都验证,一般只验证一个,有很多被突破的可能。
  • 如果post是ajax功能的post,那就检验ajax的header头就行了,拒绝所有form表单的post。
  • 监控的话,可部署监控日志。

尽管CSRF是web应用的基本问题,而不是用户的问题,但是用户如何才能避免踩入陷阱呢?

  • 用户可通过在浏览其它站点前登出站点或者在浏览器会话结束后清理浏览器的cookie
摘抄

尽量的学习,尽量的尽力, 尽量的旅游,尽量的吃好东西, 人生就比较美好一点,就是这么简单。 – 蔡澜

关注
打赏
1662051426
查看更多评论
立即登录/注册

微信扫码登录

0.2108s