谈谈 Chrome 隐藏 https 和 www 那些事
从 Chrome 69 开始,Google 就在尝试将地址栏中的 https://
和 www
隐藏起来,虽然这一改动很快就被撤掉了,但是在 Chrome 76 开始,Google 再一次进行这一改动,直到 Chrome 79,彻底尘埃落定,无法再通过 chrome://flags
禁用掉。本文就来谈谈 Chrome 隐藏 URL 中 https 和 www 这件事。
TL; DR
我知道你们想看什么。你们只关心如何重新显示 https://
和 www
。所以我把解决方案放在文章的开头。
如果你的 Chrome 版本小于等于 76,在地址栏输入 chrome://flags/#omnibox-ui-hide-steady-state-url-trivial-subdomains
,定位到「Omnibox UI Hide Steady-State URL Trivial Subdomains」,禁用该选项(选择 Disabled),重启 Chrome 即可。
如果你的 Chrome 版本小于等于 78,还需要在地址栏输入 chrome://flags/#omnibox-ui-hide-steady-state-url-scheme
,定位到「Omnibox UI Hide Steady-State URL Scheme」,禁用该选项(选择 Disabled),重启 Chrome 即可。
如果你的 Chrome 版本大于等于 79,chrome://flags
中已经没有上述选项。你需要在 Chrome Web Store 安装一个名为「Suspicious Site Reporter」的扩展(截至本文写成,该扩展最后于 2019 年 11 月 2 日更新)。这个扩展由 Google 提供,用户可以通过这个扩展将可疑网址举报给 Google Safe Browsing。但是当你安装完这个扩展后你会发现,地址栏中的 https://
和 www
又回来了。
自媒体作者和流量编辑们,我已经预见到了你们中的很大一部分人很快就把我的解决方案直接抄走当成你们的原创,不注明来源。如果你们这样做,那我在这里提前鄙视你们。
如果你只是想找个解决方案,你现在可以关闭标签页离开了;如果你对「Suspicious Site Reporter」扩展感兴趣,Chormium 在 GitHub 上 开源了这个扩展的源码;如果你对相关的 URL 规范很感兴趣,欢迎读下去,你会发现 Chrome 这一改动绝非空穴来风。
当 Chrome 推出这一改动时,很多人都在批判 Google 弱化 URL 的概念、弱化 HTTPS 的重要性。但是如果看看 WHATWG 制定的 URL 规范,你会发现 Chrome 的改动完全不是异想天开。
WHATWG,或网页超文本应用技术工作小组,制定了大量现行的 Web 方面的标准,包括 URL 相关的规范。截至本文写成,URL 相关规范最后更新于 2019 年 11 月。让我们看看 WHATWG URL 规范的 章节 4.8.1 - Simplify non-human-readable or irrelevant components,即「简化非人类可读或不相关的组件」。
删除可能提供欺骗或干扰安全相关信息的组件:
- 浏览器可以只渲染对用户来说很重要的部分来区分 URL 的 Host 和 URL 的其他部分(例如路径)。浏览器也可以进一步简化 Host,以引起对「可被注册域名」的关注。 例如,浏览器可能会省略前导的 www 或 m 域标签以简化 Host,或者仅显示「可被注册的域名」以避免类似
https://examplecorp.attacker.com/
的欺骗攻击。- 浏览器不应该渲染 URL 中的 Authentication 部分,因为这可能被用于欺骗攻击(如
https://examplecorp.com@attacker.example/
)- 浏览器可以不渲染 URL 的
scheme
部分,转而使用人类可读的字符串(如「不安全」)、安全指示符图标或同时使用上述两者进行替代。
如果你看了 WHATWG 制定的 URL 规范,你就会发现,Chrome 并不是心血来潮就把 URL 里的 https
和 www
隐藏起来,而是 完完全全遵照了 URL 规范。
所以,不仅仅 Chrome,未来所有浏览器 都有可能 按照这一规范,隐藏 URL 中的 http://
、https://
、www.
或者 m.
。如果你对这一行为不满意,你应该 现在就向 WHATWG 小组提出异议。
那么那个扩展是怎么工作的呢?「Suspicious Site Reporter」的扩展 ID 是 jknemblkbdhdcpllfgbfekkdciegfboi
。如果你在 Chormium 的源码中搜索这个 ID,你会发现 Chrome 专门针对这个扩展做了降级处理,安装了这个扩展就不再隐藏 https://
和 www
而已。