chrome新版本中iframe嵌套禁止cookie跨域携带解决方案

Google 在2020年2月4号发布的 Chrome 80 版本默认屏蔽所有第三方 Cookie,

即默认为所有 Cookie 加上 SameSite=Lax 属性,并且拒绝非Secure的Cookie设为 SameSite=Non;SameSite的作用就是防止跨域传送cookie,从而防止 CSRF 攻击和用户追踪,从源头屏蔽 CSRF 漏洞。

Secure属性
仅当整站使用https协议时:发出请求,安全cookie才会发送到服务器。

SameSite属性
Cookie 的SameSite属性用来限制第三方 Cookie,从而减少安全风险。
它可以设置三个值:Strict、Lax、None

Strict最为严格,完全禁止第三方 Cookie,跨站点时,任何情况下都不会发送 Cookie。换言之,只有当前网页的 URL 与请求目标一致,才会带上 Cookie。

Lax规则稍稍放宽,大多数情况也是不发送第三方 Cookie,但是导航到目标网址的 Get 请求除外。
导航到目标网址的 GET 请求,只包括三种情况:链接,预加载请求,GET 表单。详见下表。

请求类型 示例 正常情况 Lax
链接 发送 Cookie 发送 Cookie
预加载 发送 Cookie 发送 Cookie
GET 表单
发送 Cookie 发送 Cookie
POST 表单 发送 Cookie 不发送 Cookie
iframe 发送 Cookie 不发送
AJAX $.get("...") 发送 Cookie 不发送
Image 发送 Cookie 不发送

内嵌iframe携带cookie解决方案

一、选择显式关闭SameSite属性,将其设为None。不过,前提是必须同时设置Secure属性(Cookie 只能通过 HTTPS 协议发送),否则无效。
二、浏览器设置
谷歌浏览器访问chrome://flags/
搜索Enable removing SameSite=None cookies,参数设置成disabled

你可能感兴趣的:(chrome新版本中iframe嵌套禁止cookie跨域携带解决方案)