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 | |
预加载 | <link rel=”prerender” href=”…”/> | 发送 Cookie | 发送 Cookie |
GET 表单 | <form method=”GET” action=”…”> | 发送 Cookie | 发送 Cookie |
POST 表单 | <form method=”POST” action=”…”> | 发送 Cookie | 不发送 Cookie |
iframe | <iframe src=”…”></iframe> | 发送 Cookie | 不发送 |
AJAX | $.get(“…”) | 发送 Cookie | 不发送 |
Image | <img src=”…”> | 发送 Cookie | 不发送 |
内嵌 iframe 携带 cookie 解决方案
一、抉择显式敞开 SameSite 属性,将其设为 None。不过,前提是必须同时设置 Secure 属性(Cookie 只能通过 HTTPS 协定发送),否则有效。
二、浏览器设置
谷歌浏览器拜访 chrome://flags/
搜寻 Enable removing SameSite=None cookies,参数设置成 disabled