问题原因 Cookie:SameSite
Chrome 51 开始,浏览器的 Cookie 新增加了一个SameSite属性,主要用于防止CSRF攻击和用户追踪。
cookie的SameSite属性用来限制第三方Cookie,从而减少安全风险(防止CSRF)。
SameSite可以有下面三种值:
- Strict仅允许一方请求携带Cookie,即浏览器将只发送相同站点请求的Cookie,即当前网页URL与请求目标URL完全一致
- Lax允许部分第三方请求携带Cookie
- None无论是否跨站都会发送Cookie
在Chrome80之前默认None,在Chrome80之后,由于SameSite默认值是Lax。
从上图可以看出,SameSite从None改成了Lax后,Form, Iframe, Ajax和Image中跨站的请求受到的影响最大。
解决思路
- 采用点击跳转的方式。
- Iframe嵌入方和被嵌入方保持同一主域名下
- 主动设置SameSite为None( samesite为None的情况 ,secure必须得是 true , secure必须得是true请求就必须得是https请求)