admin管理员组文章数量:1567544
前言
之前做的一个跨域调用的静态页面,反馈使用出现了问题,检查了一下发现Chorme显示这个消息:Indicate whether to send a cookie in a cross-site request by specifying its SameSite attribute
在网上Search了一下,是chrome 更新以后出现的问题,主要是为了防止CSRF 攻击,屏蔽了第三方cookies,具体情况的话可以看下面的两个链接
Cookies default to SameSite=Lax
Reject insecure SameSite=None cookies
警告信息中讲到一个SameSite
属性,是为了限制第三方的cookies,有三个属性设置Strict、Lax、None
,要详细了解的话可以看下阮一峰老师的日志,这里就不介绍了
Cookie 的 SameSite 属性
这样的话,测试了下好像使用Chromium内核的浏览器都出现了这个问题,好,那接下来看怎么去填自己遗留下来的坑
1.回退浏览器版本
这个最简单了,回退浏览器比如Chrome 把他降到79 及以下版本就可以了,不过只是应急用的
2.修改浏览器配置
在浏览器中输入下面的url,修改same-site-by-default-cookies
及cookies-without-same-site-must-be-secure
的配置为Disabled,然后重启浏览器
chrome://flags/#same-site-by-default-cookies
chrome://flags/#cookies-without-same-site-must-be-secure
3.修改架构不用跨域调用
上面两种方法都是应急使用的,都不符合应对场景的话,还有个解决方法就是推到重来,不用跨域调用了还不行嘛
4.申请SSL证书
最符合套路的解决方案就是申请一个ssl证书,以https的形式来调用,设置cookies头为Set-Cookie: token={token}; SameSite=None; Secure
总结
总的来说这个问题主要是由于浏览器更新安全规范导致的,网上也能搜索到很多的解决方案,这里我就记录一下,以免遗忘
本文标签: CrosscookiesendSiteattribute
版权声明:本文标题:Indicate whether to send a cookie in a cross-site request by specifying its SameSite attribute 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dongtai/1727245449a1104574.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论