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