Web安全——CSRF攻击和防御

什么是CSRF

Cross site Request Forgy(跨站请求伪造)
主要是我们打开一个钓鱼网站,进去之后,这个钓鱼网站会得到你的信息,比如你的cookie的验证信息。它会在你不知情的情况下,做一些操作。

一般在一些社交、评论等地方,一定要注意CSRF攻击。千万不要随便进去一些钓鱼网站。

一般而言,你的接口是post的话,就相对get安全一点,因为如果是post方式,CSRF只能通过构造表单的方式进行攻击。如果是get方法,那么CSRF就能够更简单的得到信息。

CSRF的原理是什么

  1. 一个网站会有自己的前端网页和后台接口。
  2. 如果我在自己的网站上进行了登录操作,这个时候我们自己的cookie中已经存储了自己的用户信息
  3. 如果这时候,有一个第三方的钓鱼网站,只要你点击去,它会获取你的用户信息,然后在你不知情的情况下,执行了一些操作。

CSRF的危害有什么

  • 盗取用户信息
  • 用户不知情
  • 完成一些业务请求,盗取用户的资金(转账、消费)。
  • 冒充用户进行发帖等操作

CSRF的防御

  1. 可以使用对cookie的限制,进行解决CSRF攻击的问题,它可以让其他的网站无法拿到自己的cookie。主要是通过设置 sameSite: ‘strict’ 的方式进行。缺点:目前这样的方式,有那个兼容性的问题。
  2. 可以使用图形验证码的方式,进行对我们的接口进行验证,原理就是每次提交我们的接口的时候,我们还要提交自己的图形验证码进行验证。缺点:就是用户体验不够好!
  3. 使用token的方式,也就是说,每次我们进行接口请求的时候,我们要在自己的数据请求中携带一个token,然后服务端通过读取token,然后验证这个token。最终我们能够保证接口的安全性。缺点:在前后端分离的情况下,还是无法实时的更新。
  4. 使用referer的方式,进行验证你的接口请求地址的来源,如果这个来源是自己的客户端的地址,那么就可以继续操作相应的东西,如果这个来源不是自己的客户端的请求,直接拦截住。

猜你喜欢

转载自blog.csdn.net/mapbar_front/article/details/80710499