Chrome 80以上版本,对未设置SameSite的cookie视作SameSite:Lax
影响范围:
1.跨域的 ajax 请求
2.跨域嵌入的 iframe
3.跨域的图片资源请求
4.跨域的 POST FORM 表单
如果存在这类跨域场景,且在服务端接收请求的时候,需要使用请求中的 cookie,则需要注意这个cookie在设置的时候,是否明确有SameSite:None; Secure 这两个属性。如果没有的话,就会受到此策略影响。
而Secure意味着服务需要开启https。
浏览器SameSite改为Disabled,然后重启浏览器。
注意:只是在当前浏览器生效,没有解决根本问题。
a. 开启https。
b. 添加SameSite:None; Secure如果是tomcat7/8/9版本。
在tomcat/conf/context.xml的
<Context>
...
<CookieProcessor sameSiteCookies="None" />
...
</Context>
在tomcat/conf/web.xml或服务内web.xml的
<session-config>
...
<cookie-config>
<secure>true</secure>
</cookie-config>
...
</session-config>