Chrome 没办法携带跨站cookie的各种解决方案
同源策略的历史及对应的解决方案
当页面内发起请求时,会默认携带该域名下的cookie。
而cookie同源策略是指:除非当前域名和请求域名是同源,才会默认携带cookie。
这就导致,localhost直接请求测试环境的接口,比如 http://api.百度.com,此时不会携带 cookie,从而导致登录失效的问题。
这一策略从chrome 80开始存在,而chrome 91升级,chrome 94再升级。
chrome 各个版本如何禁用同源cookie策略:
-
chrome < 91,可以通过在chrome 浏览器中打开chrome://flags/,设置 SameSiteByDefaultCookie 为 disable 即可。
-
91 <= chrome < 94 ,删除了该配置,需要手动增加启动参数 --args --disable-features=SameSiteByDefaultCookies。可以命令行启动或者在快捷方式上加这个参数
-
chrome 94 开始删除了启动参数的支持,那么该怎么解决呢?
三种解决方案
1、前后端代理成同一个域名
ngnix、whistle、fiddler、mitmproxy等转发工具,可以选择转发域名,转发接口,原理上均可行
2、前后端遵循Samesite=None,以实现允许跨站cookie
chrome允许跨站cookie携带,需要满足两个条件:
- cookie需要标记为 SameSite=None; Secure
- 前网站和后台服务协议都为https
所以本地需要改成https://,同时服务端配合将登录的返回头set-cookie上增加 SameSite=None; Secure
3、使用下面的 chrome 扩展
https://github.com/chirpmonster/chrome-cookie-extence
注意:使用这个扩展,要求登录请求的 set-cookie 必须要能成功,浏览器要求跨站的时候,set-cookie必须带 SameSite=None; Secure (不要求https) 。
如果没有这个标记,set-cookie 会失败,提示 This Set-Cookie didn’t specify a “SameSite” attribute, was defaulted to “SameSite=Lax”, and was blocked because it came from a cross-site response which was not the response to a top-level navigation.
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgfjbah
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13