Chrome 8四、85 的三個不兼容更新,CLodop 中招,跨站 SSO 和 第三方 cookie 會是重災區

TLS 1.0 and TLS 1.1 政策變動

通知:https://chromestatus.com/feat...
通知內容:html

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

翻譯下,即git

在 Chrome 84 裏,chrome 會對不支持 TLS1.2 的站點,插入一個警告

簡要解釋下,對於 https 的連接,其中的安全層協議是基於 TLS 的,當前的很多站點,在服務器的配置都是 TLS1.2(十年前就出來了)及以上的,可是也有部分遺留站點是基於 TLS1.0 和 1.1 的,而 TLS1.0 和 1.1 又有很多安全漏洞,考慮到基於 TLS1.0 和 1.1 的連接佔比只有 0.5%,因此 chrome 以爲如今廢棄的時機到了。github

影響範圍

基於 TLS1.0 和 1.1 的站點,若是你在 chrome 84 裏直接訪問可能會這樣web

image.png

若是你有請求這樣的腳本文件,天然會請求失敗。chrome

實際上,若是你的 chrome 在 72 以上,最好是接近 84,那你如今就能在控制檯上看到這樣的警告瀏覽器

image.png

提早測試

若是你想提早開啓這個特性,安全

  1. 進入 chrome://flags/
  2. 搜索並 enabled Enforce deprecation of legacy TLS versions
  3. 重啓瀏覽器

這樣你就能夠先行測試了。服務器

中招的 CLodop

Lodop 做爲一款 web 打印插件,可能有很多人在用,正好發現他中招了,因此我就來提下。cookie

Lodop 的 web 打印插件,在處於 https 的環境下時,開發大機率會在代碼中請求 https://localhost:8443/CLodopfuncs.js?priority=1 的文件,這個https 連接,正好是基於 TLS1.0 和 1.1 的,因此在 chrome 84 下,就可能會請求失敗,致使原有的打印功能直接失敗,提示用戶未安裝。session

官方已知、可是並無升級應用程序來解決這個問題,後來通過查找,咱們發現了一個方法能夠規避這個問題。

  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 上加一行代碼就行。

<meta name="referrer" content="no-referrer-when-downgrade">

Chrome 發佈時間

  • Chrome 84 7/14 發佈
  • Chrome 85 8/25 發佈

其他戳 schedule

後話

其實這種不兼容的更新,我不知道你們關不關注,也不知道能不能幫到一些人,反正先發出來看看,若是有人發現幫到了的話,歡迎留言告知。

相關文章
相關標籤/搜索