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 80版本的cookie问题_第1张图片
我的Chrome版本.png

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

Chrome 80版本的cookie问题_第2张图片
sameSite设为disabled

4、重启浏览器

你可能感兴趣的:(Chrome 80版本的cookie问题)