CSRF是什么CSRF全称为跨站请求伪造攻击的原理

优采云 发布时间: 2021-08-03 04:23

  CSRF是什么CSRF全称为跨站请求伪造攻击的原理

  什么是一、CSRF

  CSRF全称为Cross-site request forgery(Cross-site request forgery),是一种网络攻击方式,也称为一键攻击或会话骑行。

  二、CSRF 攻击原理

  CSRF 攻击利用网站 对用户网页浏览器的信任,劫持用户当前登录的网页应用,执行用户不想要的操作。

  三、CSRF 攻击示例

  角色:

  过程:

  用户登录、浏览并信任官方网站WebA。同时WebA通过用户验证,在用户浏览器中生成cookie。

  

  第一步

  攻击者WebB通过在WebA中添加图片链接诱使用户访问网站WebB。

  

  第二步

  用户User被诱导访问WebB后,WebB会使用User的浏览器访问第三方网站WebA并发出操作请求。

  

  第三步

  用户浏览器根据WebB的请求,使用第一步生成的cookie访问WebA。

  

  第四步

  网站WebA 接收来自用户浏览器的请求。 WebA 无法判断请求是从哪里发出的。由于浏览器在访问时携带了用户的cookie,WebA会响应浏览器的请求。这样攻击网站WebB就达到了模拟用户操作的目的。

  

  第五步

  四、CSRF 攻击防护

  以上简单介绍了CSRF攻击的原理,接下来介绍几种防御CSRF攻击的方法。

  使用 JavaScript 发起 AJAX 请求仅限于跨域,不能通过简单的形式发送 JSON。因此,只接收JSON就可以避免CSRF攻击。

  根据HTTP协议,HTTP头中有一个字段叫做Referer,记录了HTTP请求的源地址。通常情况下,访问安全受限页面的请求来自同一个网站。比如用户User想在网站WebA转账,那么User

  必须先登录WabA,然后点击页面按钮启动转会活动

  此时,转账请求的Referer值为转账按钮所在页面的URL。如果黑客想对bank网站实施CSRF攻击,只能在自己的网站中构造请求。当用户通过黑客的网站向WebA发送请求时,请求的Referer就是黑客的网站。

  因此,为了防御CSRF攻击,网站WebA只需要验证每个传输请求的Referer值即可。如果是网站WebA的URL开头的域名,则表示请求来自WebA自己的请求。是合法的。如果Referer是另一个网站,可能是黑客的CSRF攻击,请求被拒绝。

  CSRF 攻击之所以成功,是因为黑客可以完全伪造用户的请求。请求中的所有用户认证信息都在cookie中,因此黑客可以在不知道认证信息的情况下直接使用该用户。拥有cookies以通过安全验证。抵抗CSRF,关键是在请求中收录黑客无法伪造的信息,而cookie中不存在该信息。可以在HTTP请求中添加一个随机生成的token作为参数,在服务器端建立*敏*感*词*来验证token。如果请求中没有token或者token的内容不正确,可能是因为CSRF攻击导致请求被拒绝。 .

  这个方法比检查Referer更安全。令牌可以在用户登录后生成并放入会话中,然后每次请求时从会话中取出令牌,并与请求中的令牌进行比较。

  参考链接:CSRF 攻击的对策

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线