chrome iframe 跨域_chrome禁止三方cookie
时间:2023-01-20 16:30:00
背景
新版chrome(80 )浏览器默认屏蔽所有三方cookie这不再是新闻了。这里没有深入研究具体原因。有很多相关文章介绍。目前,许多网站依赖三方cookie,因此,该特性的推出还是有一些影响的,比如收集用户信息的广告商,主流浏览器跟进chrome战略已成为既定事实,本文主要关注各种解决方案,您可以根据自己的情况采取不同的解决方案。
限制说明
SameSite
cookie取值包括:Lax(默认),None,Strict
1.None:将关闭SameSite前提是必须同时设置属性Secure属性(Cookie 只能通过 HTTPS 协议发送),否则无效;
2.Strict:第三方完全禁止严格的模式 Cookie,任何情况下任何情况下都不会发送 Cookie。换句话说,只有当前的网页 URL 只有与请求目标一致,才会带上 Cookie;
3.Lax:规则略有放宽,大多数情况下不发送第三方 Cookie,但导航到目标网站 Get 请求除外,详见文末链接1;
要解决我们的问题,要么是同一域名,一劳永逸,要么是使用https协议 SameSite=none,或者没有新版本的浏览器,似乎没有办法(如果有,请告诉我-_-)。
解决方案
1.chrome设置
这种方法相对简单。手动禁用浏览器的限制功能可参考文章末尾的链接2:
2.使用低版本浏览器
这也是一种解决方案,但不推荐;
3.https协议 SameSite=None
这主要取决于运维和后端处理,但这种方法可能在未来的新浏览器中失败,因为浏览器将在两年内完全禁止三方cookie,到时候怎么设置都不起作用;
4.代理服务
如果上述方法不满意,可以考虑使用node一般设计如图:
前端项目和代理服务位于同一服务器中,协议与域名一致,但端口不同。为什么要这样设计?cookie共享,因为cookie只要域名(或ip)如果一致,可以在同一台电脑上读取同一域名cookie。
还需要注意的是,跨域问题是浏览器的安全策略。代理服务和后端服务没有跨域,而是过程之间的通信。
转载自:
chrome iframe 跨域_chrome禁止三方cookie,网站不能登录怎么办?_weixin_39858124的博客-CSDN博客