继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

【金秋打卡】第6天 大话HTTP协议 CSRF攻击

慕标3395159
关注TA
已关注
手记 43
粉丝 9
获赞 1

课程名称: 大话HTTP协议 漫画+图解打造的编程基础课程
课程章节: CSRF攻击
课程内容:

CSRF攻击

  • CSRF(Cross-site Request Forgery,跨站请求伪造),也被称为“one click attack”或者“session riding”,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。
  • 尽管听起来像跨站脚本(XSS),但它与XSS非常不同,并且攻击方式几乎相左
  • XSS利用站点内的信任用户(受害者),而CSRF通过伪装来自受信任用户的请求来利用受信任网站
  • 通过社会工程学的手段(如通过电子邮件发送一个链接)来蛊惑受害者进行一些敏感性的操作,如修改密码、修改Email、转账等,而受害者还不知道他已经中招
  • CSRF的破坏力依赖于受害者的权限
  • 如果受害者只是一个普通用户,则一个成功的CSRF攻击会危害用户的数据以及一些功能
  • 如果受害者具有管理员权限,则一个成功的CSRF攻击甚至会威胁到整个网站的安全
  • 与XSS相比,CSRF攻击往往不太流行(因此对其进行防范的资源也相当稀少)和难以防范
  • 故被认为比XSS更具危险性,所以CSRF在页内有个响当当的名字——沉睡的巨人

典型的CSRF攻击传递

  • Alice登录了一个金融网站mybank.com
  • Bob知道这个金融网站mybank.com,并且发现这个网站的转账功能有CSRF漏洞
  • 于是,Bob在myblog.com上发表了一条blog,这个blog支持img自定义功能
  • 所以Bob插入了这么一行HTML代码:
    图片描述
  • Alice在自己的浏览器上打开了另一个标签正好也读到这个Blog
  • 于是Alice的账户就不知不觉地向Bob的账户转账了3000元而她却毫不知情

攻击过程深度剖析

  1. Web浏览器对于Cookie和http身份验证信息之类的会话信息的处理方式:
    • 目前,浏览器会自动发送标识用户对话的信息,而无须用户干预
    • 换句话说,当浏览器发送这些身份信息的时候,用户根本感觉不到
    • 假设站点A上有一个Web应用程序,并且受害者正好已经在该站点上通过了身份认证,这时,相应消息中就会有Cookie来记录这个信息
    • 这个Cookie的作用是什么呢?
    • 主要是被站点作为用户标志,即如果站点收到了带有受害者的Cookie的请求,那么它就会把这个请求看做是已登录的受害者发来的
    • 一般情况下,浏览器收到站点设置的Cookie之后,每当向该站点发送请求的时候,浏览器都会自动地连同该Cookie一起发出
  2. 应用程序赖以管理会话的信息对浏览器的透明性问题:
    • 也就是说,浏览器可以访问会话管理信息,如果Web应用程序完全依赖于这类信息来识别一个用户会话,就为跨站请求伪造创造了条件
    • 因为Web应用程序不会判断这个请求到底是否是合法用户发送的

CSRF攻击预防

  1. 增加一些确认操作
    • 比如说上面的转账功能,当用户调用api进行转账的时候,弹出一个对话框进行确认
    • 这样CSRF受害者就可以知道他可能中招了
  2. 重新认证
    • 在做一些重要敏感操作时候,要求用户重新输入密码进行二次验证,只有正确了才进行操作
    • 这种做法显然更安全,但对于用户看起来不是特别友好——毕竟是增加了一步操作
    • 所以安全和易用性,我们有时候不得不做出取舍
  3. 使用token
    • 在用户刚登录的时候,产生一个新的不可预知的CSRF Token,并且把此Token存放在用户的Session中
    • 在任何一个需要保护的表单中,增加一个隐藏的字段来存放这个token
    • 对于需要保护的URL,增加一个参数来存放此Token
    • 提交此请求的时候,在服务器端检查提交的Token与用户Session中的Token是否一致,如果一致,继续处理请求,否则返回一个错误信息给用户
    • 在用户退出或者Session过期的时候,用户信息(包括CSRF Token)从Session中移除并且销毁Session

课程收获:
感谢老师,给我们讲解了什么是CSRF攻击以及如何预防CSRF攻击。

课程截图:
图片描述

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP