打造更安静的Firefox
Brian King //
在最近的一次Web应用测试中,我对Firefox自行发起的额外HTTP请求感到有些沮丧,这些请求出现在我的Burp Suite代理历史记录中。在尝试理解流量时,我不得不比以往更多地滚动页面。最让人无法忍受的是那个“detectportal”的东西,似乎每60秒就会出现一次。
我发现其他Firefox用户也在抱怨同样的问题,并遵循了他们的步骤,但这些步骤并未涵盖所有情况。我将向您展示如何让Firefox保持更安静,并提供一个文件,您可以在设置新安装时自动处理所有这些内容。
我设置了一个全新的Firefox 53.0版本,没有插件或附加组件,并告诉它通过Burp Suite连接。我添加了Burp CA证书,这样Firefox就不会对Burp生成的证书抱怨,并且我仍然可以使用HSTS连接站点。
让浏览器静置十分钟后,我捕获了52个HTTP请求,涉及12个唯一域名。
十分钟,无用户操作,十二个域名
十分钟,52个请求
第一个(也是最后一个)请求引起了我的注意,并让我开始了这条探索之路。默认情况下,Firefox每60秒向http://detectportal.firefox.com/success.txt发送一个HTTP GET请求。响应只是单词“success”——它在做什么?根据https://bugzilla.mozilla.org/show_bug.cgi?id=1307867,这是Firefox检测是否在 captive portal 后面运行的一种方式。Captive portal是您在酒店和机场尝试浏览互联网时遇到的登录页面,您必须登录或同意条款等。
有一个“高级”设置可以禁用此功能,但用户界面中未公开。在地址栏中,键入“about:config”,然后单击警告。
搜索network.captive-portal-service.enabled并单击将其切换为“false”,它将停止发送此请求。
这解决了这一个案例,但趁此机会,让我们看看我们能走多远。Firefox项目有一个列表可以帮助您,标题为“如何阻止Firefox进行自动连接”https://support.mozilla.org/en-US/kb/how-stop-firefox-making-automatic-connections
那篇文章有点旧,有些内容与撰写时不同,因此让我们从Firefox 53.0版本的用户界面开始,这是本文撰写时的当前版本。
在开始之前,您需要知道浏览器窗口右上角、标题栏下方的按钮,带有三条水平线,被称为“汉堡菜单”,由那些想让您相信软盘图标是“保存”功能的不可识别符号的人命名。当我在下面说“汉堡”时,我指的就是这个。
汉堡 > 选项 > 常规:
- 当Firefox启动时:“显示空白页面”
- 搜索:取消选中您选择的搜索引擎的“提供搜索建议”
- 内容:(无更改)
- 应用程序:(无更改)
- 隐私:取消选中“在隐私窗口中使用跟踪保护”(因为此功能需要Firefox保持其跟踪方法列表更新)
- 安全:取消选中“阻止危险和欺骗性内容”(因为Firefox也必须保持这些内容的列表更新)
- 安全:取消选中“阻止危险下载”
- 安全:取消选中“警告您关于不需要和不常见的软件”
- 同步:不要在此处登录Firefox帐户。
- 高级 > 常规:(无更改)
- 高级 > 数据选择:取消选中此窗格上的所有内容。
- 高级 > 网络:(无更改)
- 高级 > 更新:选中“从不检查更新”
- 高级 > 更新:取消选中“使用后台服务安装更新”和“自动更新搜索引擎”
- 证书:(无更改)
汉堡 > 附加组件 > 顶部的齿轮菜单:
- 取消选中“自动更新附加组件”
将captive portal首选项设置为false,并进行这些用户界面可访问的更改后,关闭Firefox并重新启动。
情况有所改善,但启动时仍有一些连接发生:
这些比captive portal问题要少得多,但为了让Firefox尽可能安静,让我们也找出如何停止这些连接。
转到about:config,搜索字符串“self-repair.mozilla.org”,您会找到这个:
这是相同的主机名,但不是相同的URL。这实际上与“Heartbeat”用户调查功能相关,如https://wiki.mozilla.org/Advocacy/heartbeat所述,并不实际修复任何内容。
删除此首选项的“值”(双击该行,然后清空值)。然后再次重新启动Firefox。您应该注意到那三个请求不再发生。实际上非常安静!
我让浏览器在默认空白标签页上再次静置十分钟,这次没有来自Firefox的HTTP请求。
在浏览会话期间,仍会有一些连接自动发生,只是频率较低。如果您也想捕获这些,请转到about:config并将以下所有项目设置为“false”:
- extensions.blocklist.enabled
- network.prefetch-next
- extensions.getAddons.cache.enabled
- browser.casting.enabled
并将此设置为“true”:
- network.dns.disablePrefetch
并将此设置为零:
- network.http.speculative-parallel-limit
并将此设置为空字符串:
- browser.aboutHomeSnippets.updateUrl
并将这些设置为单词“ignore”:
- browser.startup.homepage_override.mstone
好了。现在Firefox不应该用您未发出的请求污染您的Burp代理历史记录。
我将所有这些放入一个user.js文件中,您可以在每次设置新的测试VM时将其复制到Firefox配置文件目录,这样您就不必记住并手动进行所有这些更改。
请记住,这里的唯一目的是让Firefox安静。这不是“安全”问题,实际上在您用于日常浏览的Firefox上安装会是一个相当糟糕的主意。
在此处获取文件副本:https://bitbucket.org/mrbbking/quieter-firefox 如果您有改进的想法,仓库也在那里。
评论
Paul
2017年6月12日 @ 4:37 pm
我尚未为任何站点配置推送通知;然而,我仍然看到Firefox通过wss://push.services.mozilla.com进行检查。我通过将dom.push.enabled设置为false来停止这一点。
bbking
2017年6月12日 @ 5:47 pm
谢谢,Paul!
我看到有一小堆dom.push.*设置。
我会查看这些并进行一些更新。