前端安全-CSRF攻击

CSRF(Cross-site request forgery)跨站请求伪造:攻击者诱导受害者进入第三方网站,在第三方网站中,向被攻击网站发送跨站请求。利用受害者在被攻击网站已经获取的注册凭证,绕过后台的用户验证,达到冒充用户对被攻击的网站执行某项操作的目的。

一个经典的CSRF请求

  1. 受害者登录了a.com,并保留了登录凭证cookie
  2. 攻击者引诱受害者访问了b.com
  3. b.coma.com发送了一个请求
  4. a.com接收到请求后,对请求进行验证,确定是受害者的凭证,误以为是受害者自己发送的请求
  5. a.com以受害者的名义执行b.com发送过来的请求
  6. 攻击完成,攻击者在受害者不知情的情况下,冒充受害者,让a.com执行了自己定义的操作

防护策略

  1. 同源检测 因为多数CSRF来自第三方网站,那我们就直接禁止外域对我们发起请求,比如我们可以验证其RefererOrigin
  2. SameSite Cookie 该属性有服务端设置,外站不可以使用本站的Cookie。SameSite分为Strict和Lax两种模式,Strict表明Cookie任何情况下都不能作为第三方Cookie,Lax模式下,如果这个请求改变了当前页面或者打开了新页面且同时是个GET请求,这个Cookie就可以作为第三方的Cookie
  3. CSRF Token 将CSRFtoken输出到页面中,页面提交请求时携带这个token,服务器验证token是否正确
  4. 双重Cookie认证 在用户访问网站页面时,向请求域名注入一个cookie,内容为随机字符串。在前端向后端发起请求时,取出Cookie,并拼接到URL中。后端接口验证Cookie中的字段与URL中的字段是否一致,不一致则拒绝
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值