Chrome 80 跨域名登录失效的问题

Chrome 80 版本在跨域名登录时存在问题,可能会使页面陷入死循环的状态,导致用户无法正常登录。这主要是由于这个版本中,Chrome 的策略有所更新。

在旧版浏览器,如果 SameSite 属性没有设置,或者没有得到运行浏览器的支持,那么它的行为等同于 NoneCookies 会被包含在任何请求中——包括跨站请求。

但是,在 Chrome 80+ 版本中,SameSite 的默认属性是 SameSite=Lax。换句话说,当 Cookie 没有设置 SameSite 属性时,将会视作 SameSite 属性被设置为Lax 。如果想要指定 Cookies 在同站、跨站请求都被发送,那么需要明确指定 SameSiteNone。具有 SameSite=NoneCookie 也必须标记为安全并通过 HTTPS 传送。

Chrome 88 之前,您将能够使用策略还原为旧版 Cookie 行为。您可以使用 LegacySameSiteCookieBehaviorEnabledForDomainList 指定受信任的域,也可以使用 LegacySameSiteCookieBehaviorEnabled 控制全局默认值。有关更多详细信息,请访问 Cookie旧版SameSite政策https://www.chromium.org/administrators/policy-list-3/cookie-legacy-samesite-policies

以上更新可能对以下功能造成影响:

  • 跨域名登陆失效
  • jsonp 获取数据失效
  • iframe 嵌套的页面打不开或异常
  • 部分客户端未改造导致各种数据获取异常

建议大家针对上述更新对自己的站点功能在新版浏览器下做一些测试,以免影响功能正常使用。

你可以到 chrome://flags/ 开启 SameSite by default cookiesCookies without SameSite must be secure 进行测试。

image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 关于 “Chrome 修改对未设置 SameSite 的 cookie,视作 SameSite:Lax 处理的变更...
    稲荷九尾阅读 13,146评论 0 3
  • 前端开发面试题 面试题目: 根据你的等级和职位的变化,入门级到专家级,广度和深度都会有所增加。 题目类型: 理论知...
    怡宝丶阅读 2,606评论 0 7
  • http协议有http0.9,http1.0,http1.1和http2三个版本,但是现在浏览器使用的是htt...
    一现_阅读 1,892评论 0 3
  • 前端开发知识点 HTML&CSS对Web标准的理解、浏览器内核差异、兼容性、hack、CSS基本功:布局、盒子模型...
    Hebborn_hb阅读 851评论 0 1
  • Chrome更新后你还不知道Cookie中的SameSite吗? Cookie是什么 一个Cookie就是存储在用...
    橙汁坤阅读 1,209评论 0 0