学学CSRF攻击的原理与防范

什么是CSRF 跨站点请求伪造

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

攻击步骤:

  1. 浏览登陆网站A
  2. 网站A用户验证通过,在用户客户端产生cookie
  3. 用户在没有登出A网站的情况下,访问到了危险网站B
  4. 网站B对网站A发送恶意请求
  5. 浏览器带着恶意请求之前保存的cookie访问网站A
  6. 因为带着cookie,网站A以为是用户在操作,处理了网站B的恶意请求。从而达到了模拟用户操作的目的。

常见的CSRF攻击类型

  1. get类型的CSRF 只需要一个http请求 在受害者访问含有这个img的页面后,浏览器会自动向http://bank.example/withdraw?account=xiaoming&amount=10000&for=hacker发出一次HTTP请求,bank.example就会收到包含受害者登录信息的一次跨域请求。
  2. Post类型的CSRF 这种类型的CSRF利用起来通常使用的是一个自动提交的表单,如:
    <form action="http://bank.example/withdraw" method=POST>
    <input type="hidden" name="account" value="xiaoming" />`
    <input type="hidden" name="amount" value="10000" />
    <input type="hidden" name="for" value="hacker" />
    </form>
    <script> document.forms[0].submit(); </script>
复制代码
  1. 链接类型的CSRF 链接类型的CSRF并不常见,比起其他两种用户打开页面就中招的情况,这种需要用户点击链接才会触发。这种类型通常是在论坛中发布的图片中嵌入恶意链接,或者以广告的形式诱导用户中招,攻击者通常会以比较夸张的词语诱骗用户点击

CSRF的特点

  1. 攻击发起方为第三方网站,而不是被攻击的网站。
  2. 攻击者利用用户的登陆凭证,冒充用户进行操作,而不是窃取数据
  3. 跨站请求可以有很多方式,如图片,表单,超链接

CSRF和Xss的区别

XSS是代码注入问题,Csrf是HTTP问题 XSS是没有进行输入过滤导致将攻击者的输入当代码执行 CSRF是因为浏览器发送请求的时候自动带上了Cookie

如何防御

  1. 验证码:完成验证码操作才能处理请求
  2. token:token 验证的 CSRF 防御机制是公认最合适的方案
全部评论

相关推荐

不愿透露姓名的神秘牛友
02-12 18:14
RT,这周五就是情人节了,前女友给我发了消息,我该不该回?
Yoswell:原则上来说让她滚,但是本着工作很累下班想吃瓜的心态,我觉得你可以回一下
点赞 评论 收藏
分享
01-14 19:01
吉首大学 Java
黑皮白袜臭脚体育生:加个项目吧,一般需要两个项目一业务一轮子呢,简历统一按使用了什么技术实现了什么功能解决了什么问题或提升了什么性能指标来写
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务