Google Chrome 69 地址欄隱藏子域名後暴露的安全問題

作者: Calpa Liu

出版:2018-09-07

前言

定期更新軟件可以修復其自身的漏洞,即使是 Google Chrome,它的更新也是有安全問題的。在 Chrome 69 的版本裡面,www 被認定為 trivial 的子域名,因而隱藏了它之前的字眼。雖然可以提升一點用戶體驗,但卻帶來了另外一個風險點。

瀏覽器隱藏域名

In the Omnibox, hide the scheme and trivial subdomains from steady state displayed URLs. Hidden portions are restored during editing. For Mac, this flag will have no effect unless MacViews is enabled. – Mac, Windows, Linux, Chrome OS, Android

這裡是說多功能框(地址欄),會自動隱藏 scheme 和不重要的子域名。而這些部分在編輯地址欄的時候會重新出現。

問題

然而,瀏覽器隱藏 https://www 這個字時,不完整的 url 讓我們無法識別一些網站的正確性,比如說以下的這些例子:

網站正確錯誤顯示
NTP Pool Projecthttp://www.pool.ntp.orgpool.ntppool.orgpool.ntppool.org
citibankhttps://www.citibank.com.sgcitibank.com.sgcitibank.com.sg
tumblrhttps://www.tumblr.com/http://m.tumblr.comtumblr.com

tumblr.com

可能你會覺得用戶會很小心地輸入域名,所以隱藏子域名不會構成問題,那麼下面這個例子就是一個很大的問題了:

http://www.example.www.example.com/ 會被縮寫為 example.example.com

example.com

頂部的地址欄會把www前面的都刪去,只顯示後面的字,無論是怎麼說,兩個 url 根本不一樣的。

解決方法

  1. 手動在地址欄輸入chrome://flags/#omnibox-ui-hide-steady-state-url-scheme-and-subdomains 禁止 Omnibox UI Hide Steady-State URL Scheme and Trivial Subdomains

chrome://flags/#omnibox-ui-hide-steady-state-url-scheme-and-subdomains

  1. 加入討論,改變 Chrome 的默認做法

後記

Google Chrome 還是蠻多人用的,一更新就有很多人馬上更新了。我也不例外,雖然是看到地址欄的時候感覺怪怪的,但是沒有做過邊際測試的話,還是沒有發現這個問題的。

如果你有什麼想法的話,可以到 Hacker News 裡面留言,或者在下方留言。

參考資料

  1. Incorrect transforms when stripping subdomains - Issue 881410
  2. Chrome 69: “www.” subdomain missing from URL - Hacker News

關於 Calpa Liu

Avatar

Calpa 是一個四天工作的系統架構師,日常幫助客戶構建一站式網站應用,手機應用,雲端架構。

2023 年 9 月,Calpa 收到來自國內外不同 Web3 團隊的邀請,參加韓國的 KBW 2023 和新加坡的 TOKEN 2049 活動。十二月份,Calpa 將參加台北區塊鏈週的 Hackathon 比賽。

Calpa 擅長運用各種前沿技術,包括 TypeScript、React.js 和 Vue.js,開發具有 Responsive Web Design 的網站。另外,他透過運用 aws-cdk 和 TypeScript 技術的融合,實現了基於雲端的「基礎即代碼」(Infrastructure as Code)部署策略,建立了多套高效且具有可伸縮性的全端架構。

同時,Calpa 積極參與各個社群,活躍於香港和台灣的開源社區,分享前沿知識。他曾在 2019 年的香港開源大會中擔任重要講者,為聽眾提供寶貴的工作經驗和深刻見解。此外,Calpa 在 GitHub 上公開分享了個人博客程式碼,已獲得超過 300 顆星星和 60 個分支。

如果您對系統架構有任何問題,或需要進一步交流,請隨時聯絡 Calpa,他非常歡迎討論。