google chrome浏览器 iframe 内嵌页面cookie无法写入问题

问题如图所示
红色框的域名为框架的主要域名,黄色框是页面内嵌入的两个iframe的域名。红色域名登录以后cookie信息无法写入黄色域名下面,导致黄色域名下面的接口请求失败。
在这里插入图片描述

原因
Chrome 某个版本开始,浏览器的 Cookie 新增加了一个SameSite属性,用来防止 CSRF 攻击和用户追踪。并将未声明 SameSite 值的 Cookie 默认设置为SameSite=Lax Cookie。
(关于SameSite详情可参考阮一峰文章:http://www.ruanyifeng.com/blog/2019/09/cookie-samesite.html)

google设置解决方法
前往 chrome://flags,通过禁用“SameSite by default cookies”和“Cookies without SameSite must be secure”功能开关,修改后点击Relaunch重新启动即可。如下图所示:
在这里插入图片描述
开发者解决办法:
1.内嵌页面最好采用同站(SameSite)策略。
2.接口请求参数直接带上token请求。
3.设置sameSite: ‘none’,( 需https协议,且不同浏览器版本有兼容性问题,需要 UA 检测)(参考:https://github.com/mqyqingfeng/Blog/issues/157)

拓展知识:
1.Cookie 的 SameSite 属性
2.SameSite小识(Cookie携带的场景)
3.同站 和 同源 你理解清楚了么?

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值