您当前的位置:首页 > 计算机 > 软件应用 > 浏览器应用

针对 Chrome 80 和 Chrome 91 对 Cookie SameSite 限制的解决方案

时间:12-14来源:作者:点击数:

一、前因

由于近期 Chrome 更新,原来的配置失效了,又来更文了。

是这样的。由于此前我的 Chrome 浏览器一直都是安装最新 Beta 版本,但是有一天因为该浏览器 Cookie 的 SameSite 属性的限制(Chrome 80 版本以后),导致跨域请求无法携带上 Cookie 了,导致在开发过程中遇阻了。

由于不习惯在 Safari 或者 Firefox 浏览器上进行开发,主要是操作习惯不太一样,而且一些插件的原因,也用着不舒服。就想着先安装旧版的浏览器继续开发,别耽误项目进度。当然这是权宜之计。

二、解决方法

自 Chrome 80 版本起,Chrome 更新了 SameSite 属性的默认值,由 None 改成了 Lax,主要用于限制第三方 Cookie,减少安全风险和用户追踪。同时,基于 Chromium 的 Edge 浏览器,在对应版本也会有此限制哦。

方案一(不推荐)

安装 Chrome 80 以下版本。

方案二:针对 Chrome 80 以上,Chrome 91 以下的浏览器

浏览器地址输入 chrome://flags/ 并前往 ,搜索 SameSite by default cookies 和 Cookies without SameSite must be secure,将这两项设置为 Disabled,然后重启浏览器

方案三:针对 Chrome 91 及更新版本

近期将 Google Chrome 升级到 91 版本之后,将上述提到的 SameSite by default cookies 和 Cookies without SameSite must be secure 直接屏蔽并设置为默认值(Default),所以我们原来的配置失效了,且再也无法通过上述方式去修改配置了。

其中一个解决方法,还是降级到 Chrome 91 以下(仍然不推荐)。

  • Win 平台:

完全关闭 Chrome 浏览器的前提下,打开 Chrome 浏览器快捷方式,在目标后添加 --disable-features=SameSiteByDefaultCookies 保存。

  • Mac 平台:

前提还是完全关闭浏览器,根据不同的浏览器,选择不同的启动命令,在终端执行命令打开。

# Google Chrome
$ open -a "Google Chrome" --args --disable-features=SameSiteByDefaultCookies

# Microsoft Edge by Chromium
$ open -a "Microsoft Edge" --args --disable-features=SameSiteByDefaultCookies

方案四:针对未来版本(94 版本)

Chromium 项目官网提到在 94 版本通过命令行禁用设置 SameSite 默认值的方式会被移除,届时方案二和方案三的方式都将无法使用,后续可通过 Nginx 等代理工具或软件将跨域请求转为非跨域请求来解决改问题。

官方描述如下(link:https://www.chromium.org/updates/same-site):

The flags #same-site-by-default-cookies and #cookies-without-same-site-must-be-secure have been removed from chrome://flags as of Chrome 91, as the behavior is now enabled by default. In Chrome 94, the command-line flag --disable-features=SameSiteByDefaultCookies,CookiesWithoutSameSiteMustBeSecure will be removed.

四、浏览器下载

Chrome 浏览器

  • 最新稳定版:
    https://www.google.cn/intl/zh-CN/chrome/?standalone=1
    https://www.google.com/intl/zh-CN/chrome/browser/?standalone=1
  • 最新测试版:
    https://www.google.com/intl/zh-CN/chrome/beta/?standalone=1&extra=betachannel
  • 最新开发版:
    https://www.google.com/intl/zh-CN/chrome/browser/?standalone=1&extra=devchannel
  • 最新 Canary 版:
    https://www.google.com/chrome/canary

说明一下:standalone=1 参数表示离线包,去掉属于在线安装。

如果我们想要下载历史版本的怎么办?

可访问 Chrome Downloads(link:https://www.chromedownloads.net/),里面提供了 Mac/Win 版都挺全的。

Firefox 浏览器

  • 正式版本
    https://www.mozilla.org/zh-CN/firefox/
  • 开发者中文版本:
    https://www.mozilla.org/zh-CN/firefox/developer/
  • Beta 版、Nightly 版
    https://www.mozilla.org/zh-CN/firefox/channel/desktop/#beta

五、参考

  • Chrome 91 版本 SameSite by default cookies 被移除后的解决方案(link:https://blog.csdn.net/weixin_46146313/article/details/117707199)
  • Chrome 中跨域 POST 请求无法携带 Cookie 的解决方案(link:https://juejin.cn/post/6967695146322247716)
  • Chrome/Edge 91 版本 SameSite by default cookies 被移除后的解决方案(link:https://gadzan.com/chrome-edge-91hou)
  • Cookie 的 SameSite 属性(阮一峰)(link:http://www.ruanyifeng.com/blog/2019/09/cookie-samesite.html)
  • 当浏览器全面禁用三方 Cookie(link:https://mp.weixin.qq.com/s?__biz=Mzg2NDAzMjE5NQ%3D%3D&chksm=ce6eccfff91945e990e0b21e777f5a85f3f0699f7d51e45a1dd83d0bf36eaf926f7e90fbe3ff&idx=1&lang=zh_CN&mid=2247485523&scene=21&sn=e7f3989448f5ff1e8905fc6596268e33&token=379611469#wechat_redirect)
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐