csrf验证问题 -- 不同域名下Iframe嵌套Cookie失效导致csrf验证失败

问题原因 Cookie:SameSite

Chrome 51 开始,浏览器的 Cookie 新增加了一个SameSite属性,主要用于防止CSRF攻击和用户追踪。

cookie的SameSite属性用来限制第三方Cookie,从而减少安全风险(防止CSRF)。

SameSite可以有下面三种值:

  • Strict仅允许一方请求携带Cookie,即浏览器将只发送相同站点请求的Cookie,即当前网页URL与请求目标URL完全一致
  • Lax允许部分第三方请求携带Cookie
  • None无论是否跨站都会发送Cookie

在Chrome80之前默认None,在Chrome80之后,由于SameSite默认值是Lax。

avatar

从上图可以看出,SameSite从None改成了Lax后,Form, Iframe, Ajax和Image中跨站的请求受到的影响最大。

解决思路

  • 采用点击跳转的方式。
  • Iframe嵌入方和被嵌入方保持同一主域名下
  • 主动设置SameSite为None( samesite为None的情况 ,secure必须得是 true , secure必须得是true请求就必须得是https请求)
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值