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

作者: Calpa Liu
字數:509
出版:2018 年 9 月 7 日
#GoogleChrome#地址欄#安全#Mac
這裡是說多功能框(地址欄),會自動隱藏和不重要的子域名。而這些部分在編輯地址欄的時候會重新出現。

⚠️ 時效警告:本文發佈於 2018 年,記錄的是 Chrome 69 當時的行為(Google 其後已回滾,改回顯示完整網址,文中 chrome://flags 的開關也已被移除)。內容保留作為歷史紀錄,最新做法請參考官方文件。

瀏覽器隱藏域名

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/https://web.archive.org/web/20230321051506/https://m.tumblr.com/tumblr.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 Website。

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

他熱愛學習新技術,並樂意分享經驗。他相信,唯有不斷學習才能跟上快速演變的技術環境。

熱門文章