关于 chrome 51~66版本cookie 失效问题

309 阅读1分钟

关于 chrome 51~66版本cookie 失效问题

原因

主要是 SameSite 引起的

先了解下这个属性,这个属性主要是控制在跨站请求时,cookie 携不携带的问题,从而用这个可以阻止跨站请求伪造攻击(CSRF)

SameSite 有三个属性:

  • Strict 浏览器只能发送相同站点请求的 cookie,就是当前的 url 和请求的 url 完全一致
  • Lax 允许部分第三方的请求携带 cookie
  • None 任何情况下都会发送 cookie

问题就出在 None 这个值,在 Chrome51~Chrome66这些版本里面设置 SameSite=None 会有

兼容性问题。这些版本会直接拒绝带有SameSite=None的 cookie,不会存在本地,这就导致了登录失败的问题,因为浏览器没有存 cookie。

解决

让后端进行 User-Agent 进行检测,对这些版本的浏览器不下发 SameSite=None 属性