我们使用 .localhost 域来开发我们的应用程序,并且我们有多个应用程序位于不同的域中。我们现在需要测试需要页面在安全上下文中执行的功能,即 Service Workers 和 Push API。
过去几个版本的 Google Chrome 已将来自 .localhost 域的所有站点标记为安全上下文,允许对 Service Workers、Push API 等进行本地、无忧的测试。
我找不到强制 Firefox 76 考虑来自安全上下文的相同页面的方法。
我们已成功使用本地 dns 解析器设置或内置浏览器行为在所有浏览器中将所有 .localhost 地址正确解析为 127.0.0.1。
Firefox 配置条目
network.dns.localDomains
似乎不会影响站点是否处于安全上下文中。
似乎有某种 FF 内部开发来改变这种开箱即用的行为,但很难说它何时会被合并和发布,以及 *.localhost 中的所有页面是否肯定会被视为安全上下文:
https://bugzilla.mozilla.org/show_bug.cgi?id=1220810
从 Firefox 84 开始,本地主机被认为是安全上下文。在此之前,这并不是因为不能保证 localhost 实际上会解析为本地(因此受信任)地址。
但是,首选项
dom.securecontext.allowlist
(Firefox 97 之前的 dom.securecontext.whitelist
)是专门针对这种情况创建的,并且它需要一个被视为安全的主机列表(例如,host1.example.com,host2.example.net
)。
此偏好似乎没有详细记录,但可以在此变更集中看到:https://hg.mozilla.org/mozilla-central/rev/cfb9de0c9f2a。