Chrome 中 Set-Cookie SameSite 问题

关于 “Chrome 修改对未设置 SameSite 的 cookie,视作 SameSite:Lax 处理的变更” 的问题,目前看,最妥善的解决方案还是按照规矩办事儿,目前 Chrome 是行动最快的,而 FireFox 和 Edge 也在积极跟进,持支持态度。


影响范围:

如果你的项目中有如下跨域场景:

  1. 跨域的 ajax 请求;
  2. 跨域嵌入的 iframe;
  3. 跨域的图片资源请求;
  4. 跨域的 POST FORM 表单;

如果存在这类跨域场景,且在服务端接收请求的时候,需要使用流量中的 cookie,则需要注意:这个 cookie 在设置的时候,是否明确有: SameSite:None; Secure 这两个属性。如果没有的话,就会受到此策略影响。

例子:

a.com 的页面中,加载 b.com 的 iframe,且希望 iframe 请求的流量中,携带 b.com 的 cookie,用其中的 login_token 作为登录凭证。

+------------------+               +-----------------+
|      a.com       |               |      b.com      |
|  +------------+  |  cookie:      |                 |
|  |            |  |  login_token  |                 |
|  |