Chrome 84、85 的三个不兼容更新,CLodop 中招,跨站 SSO 和 第三方 cookie 会是重灾区

TLS 1.0 and TLS 1.1 政策变更

通知:https://chromestatus.com/feat...
通知内容:

In M-84, Chrome will show a full page interstitial warning on sites that do not support TLS 1.2 or higher.

翻译下,即

在 Chrome 84 里,chrome 会对不支持 TLS1.2 的站点,插入一个警告

简要解释下,对于 https 的链接,其中的安全层协议是基于 TLS 的,当前的不少站点,在服务器的配置都是 TLS1.2(十年前就出来了)及以上的,但是也有部分遗留站点是基于 TLS1.0 和 1.1 的,而 TLS1.0 和 1.1 又有不少安全漏洞,考虑到基于 TLS1.0 和 1.1 的链接占比只有 0.5%,所以 chrome 觉得现在废弃的时机到了。

影响范围

基于 TLS1.0 和 1.1 的站点,如果你在 chrome 84 里直接访问可能会这样

Chrome 84、85 的三个不兼容更新,CLodop 中招,跨站 SSO 和 第三方 cookie 会是重灾区_第1张图片

如果你有请求这样的脚本文件,自然会请求失败。

实际上,如果你的 chrome 在 72 以上,最好是接近 84,那你现在就能在控制台上看到这样的警告

image.png

提前测试

如果你想提前开启这个特性,

  1. 进入 chrome://flags/
  2. 搜索并 enabled Enforce deprecation of legacy TLS versions
  3. 重启浏览器

这样你就可以先行测试了。

中招的 CLodop

Lodop 作为一款 web 打印插件,可能有不少人在用,正好发现他中招了,所以我就来提下。

Lodop 的 web 打印插件,在处于 https 的环境下时,开发大概率会在代码中请求 https://localhost:8443/CLodopfuncs.js?priority=1 的文件,这个https 链接,正好是基于 TLS1.0 和 1.1 的,所以在 chrome 84 下,就可能会请求失败,导致原有的打印功能直接失败,提示用户未安装。

官方已知、但是并没有升级应用程序来解决这个问题,后来经过查找,我们发现了一个方法可以规避这个问题。

  1. 直接请求 http://localhost:18000/CLodopfuncs.js?priority=1
  2. 如果 1 失败请求 https://localhost:8443/CLodopfuncs.js?priority=1

这样就可以解决问题。

其中第2步,是为兼容 chrome 53 之前的版本准备的,因为 chrome 53 之前,不能在 https 的环境下,请求 http://localhost 下的资源,而在这之后,就可以请求http://localhost 下的资源,具体规范戳 MDN/Mixed_content 以及 w3c/webappsec-mixed-content

另外的不兼容更新

跨站 cookie 默认被禁

Chrome 84 还有一项政策更新,sameSite。关于这个其官网有重点介绍,国内的云飞大佬,也有介绍 SameSite Cookie,防止 CSRF 攻击

大意就是,跨站 cookie 会被严格限制,大部分的跨站 cookie 默认会失效,跨站的 SSO(单点登陆) 和 第三方的 cookie 会是重灾区,不过 chrome 也给出了方案,具体大家戳 链接 去看。

这里也可以给个简单粗暴的方案,升级 https,然后 set-cookie

Set-Cookie: widget_session=abc123;

改为

Set-Cookie: widget_session=abc123; SameSite=None; Secure

跨源时,referrer 默认只发送源

Chrome 85 会更新 Referrer Policy 的默认值,详情戳 Referrer Policy: Default to strict-origin-when-cross-origin

简要概述下,就是默认情况下,原来在跨源情况下,referrer 是可以拿到一个较为完整的 url 的(譬如 https://www.icourse163.org/learn/HIT-437006?tid=1450320464),现在只能拿到 origin(譬如 https://www.icourse163.org),对于依赖于 referrer 请求头的一些应用,可能会出问题,譬如第三方、SSO(单点登陆)等。

要解决这个问题,在 html 上加一行代码就行。

Chrome 发布时间

  • Chrome 84 7/14 发布
  • Chrome 85 8/25 发布

其余戳 schedule

后话

其实这种不兼容的更新,我不知道大家关不关注,也不知道能不能帮到一些人,反正先发出来看看,如果有人发现帮到了的话,欢迎留言告知。

你可能感兴趣的:(chrome,sso,cookie,javascript,html)