Chrome 80版本的cookie问题

阮大神的博客也有说到这个问题:传送门

问题的表现

升级到了Chrome 80版本,cookie在跨域的时候会出现问题(主要的场景是开发环境本地连接线上的服务器):

来了一个response中有set-cookies,但却是没有set进去,而后的http请求中没有能带上这些cookie,

Chrome报出警告:
A cookie associated with a cross-site resource at http://xxxx/ was set without the SameSite attribute. It has been blocked, as Chrome now only delivers cookies with cross-site requests if they are set with SameSite=None and Secure. You can review cookies in developer tools under Application>Storage>Cookies and see more details at https://www.chromestatus.com/feature/5088147346030592 and https://www.chromestatus.com/feature/5633521622188032.

问题的原因:

Chrome 80 版本升级,提升了Cookie SameSite的默认安全等级,强推 SameSite Cookie

Chrome <80 默认值:SameSite=None;请求带Cookie
Chrome >=80 默认值:SameSite=Lax;请限制带Cookie

SameSite:

SameSite 是 Chrome 51 版本为浏览器的 Cookie 新增的了一个属性, SameSite 阻止浏览器将此 Cookie 与跨站点请求一起发送。其主要目标是降低跨源信息泄漏的风险。同时也在一定程度上阻止了 CSRF(Cross-site request forgery 跨站请求伪造)。

Cookie 的SameSite属性用来限制第三方 Cookie,从而减少安全风险。

它可以设置三个值:
Strict
Lax
None

在Chrome 80 以上的版本,它默认设置为Lax

我的Chrome版本.png

我的解决办法是将sameSite设置为disabled:
1、地址栏输入:chrome://flags
2、搜索:SameSite by default cookies
3、选择:disabled

sameSite设为disabled

4、重启浏览器

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容