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

作者: Calpa Liu
字數:1796
出版日期:September 7, 2018
更新日期:December 7, 2023
分類: #前端開發

定期更新軟件可以修復其自身的漏洞,即使是 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

Calpa 擅長使用 TypeScript、React.js 和 Vue.js 開發Responsive Web Design網站。

此外,Calpa 積極參與香港和台灣的開源社區,曾在2019年的香港開源大會上擔任講者,提供工作經驗和見解。此外,他也在 GitHub 上公開分享個人博客程式碼,已獲得超過300顆星星和60個分支的支持。

更多前端開發技術文章:傳送門