网页浏览器 —— 该选哪个?

引言

中文互联网一直以来几乎没有一篇说得过去的关于选择浏览器的文章. 编程随想有几篇文 章算是初窥门径, 然后就没有了, 只剩下垃圾场漫天的苍蝇与腐臭味. 中文互联网是这个 样子, 真是让人伤心. 我根本算不得什么懂网络的人, 但是也斗胆抛砖引玉, 讲讲这个话 题.

TL;DR: 用 firefox —— 保证不是什么中国大陆特供版. 然后参考 spyware watchdog 和 Arkenfox user.js 的文档定制你的 user.js. 我知道你大概听不懂我在说啥. 那就接 着看下去吧.

加载 HTML 文档本应该是件简单的事情. 随便找个终端下的浏览器都能正常加载出本站的 全部内容 (当然图片和 CSS 除外). 但是随着互联网逐渐膨胀, 一个网页浏览器要干的事 情越来越多了: 它需要能播放流媒体音频; 处理 cookies 和 js 脚本; 加载飘飘去的小广 告 —— 这点导致我们还需要浏览器能够屏蔽广告内容和弹出式窗口. Brave 的开发者甚至 直接往他们的浏览器里塞了个 torrent 下载器.

某些浏览器 (i.e., 所有 —— 没有几乎 —— 的主流浏览器) 还要给谷歌分析或是之类的 东西发送遥测数据, 这让事情变得越来越糟糕了. 首先就让我们来看看这些附带了浏览网 页功能的间谍软件吧…

腐烂的浏览器…们

Google Chrome & MicroSoft Edge

如果你并不关心你在网络世界的隐私与便利, 那你八成就在用这两个浏览器中的一种. 或 者用微信做你的搜索引擎. 不管是哪样都很糟.

这两个浏览器糟糕的地方不言自明. 它们都是闭源软件; 背后都是一个臭名昭著的垄断公 司. 用这种浏览器上网无异于在大街上裸奔. 这不是杞人忧天或是恶意揣测: 你向你的谷 歌搜索栏输入 “Chrome spyware” 都能得到一堆搜索结果. Edge 在换成 Chromium 套皮 之前还有些许的可取之处 (独立的内核; PDF 渲染做得极好), 现在它什么也不是.

Update 2022.10.22: 在可见的未来 Chrome 只会更烂. 谷歌已经计划好要干掉所有基于 Manifest v2 的 WebExtesnsion 插件, 强推它所谓更 “安全” 的 Manifest v3. 这意味着 之前的广告拦截器 (比如我们喜爱的 uBlock Origin) 都将失效. uBO 的作者为 v3 写了 个劣化版本. 但那毕竟是劣化版本. 这次 “更新” 之后所有基于 Chrome 的浏览器都要受 影响. 据说 Brave 自带的广告拦截器不会因此倒下… 但是这个拦截器显然是远远不如 uBO 的.

Mozilla Firefox

Mozilla Firefox 自称用户隐私之友. 很不幸事实并非如此. 我实在无法一一列举出 Firefox 在行动上是如何与 Mozilla Foundation 虚假的隐私安全承诺相违背的. 这里我 们就简单地讲几个吧:

事实上 Mozilla 在长期以来一直在做着不受用户欢迎的决定: 越来越多的设置选项被隐藏 到了 about:config 中; XUL 插件被弃用; 放弃支持 gopher 协议; 强制推广蠢得要死的 Pocket; 在启动页加入亚马逊以及其他狗屎企业的广告; 以及最过分的, 支持他妈的言论 审查. 现在 Mozilla 声称 Firefox 不会放弃对 Manifest v2 的支持, 但谁知道以后会怎 么样呢? 让我们小小的阴谋论一下: 谷歌在过去, 现在, 以及可见的将来都是 Mozilla 最 大的赞助者之一. 那个混帐垄断企业也许可以简单地用钞票让 Mozilla 基金会的人们忘 记之前的豪言壮语. 毕竟他们很擅长忘记, 就像他们想象中的用户那样.

Forked Browser

这里我们指的是 Firefox 和 Chrome 的分支浏览器. 它们自称尊重隐私, 但是绝大部分还 是一样会发送遥测数据 (包括 Brave); 而且有很多 Chrome-based 的浏览器事实上不是开 源软件 (e.g., Edge, Opera, Vivaldi).

但与它们可能闹出来的浏览器漏洞问题相比, 以上毛病都不算什么大事了. Edge 和 Brave 大概能跟得上 Google Chrome 的 Blink 内核更新, 这让它们能及时得到最新的安全补丁, 但其他浏览器就没有那么幸运了: Cent 浏览器的内核似乎落后了好几个版本; GNU/Icecat 也同样缺少维护人员; Librewolf (其实是个好浏览器) 的开发者非常努力, 但它的内核更 新相较于 Firefox 上游也落后大概三天左右, 就不用提更下游的仓库维护者了.

为什么及时的安全补丁更新很重要? 因为网络浏览器很特殊也很关键. 和你的文本编辑器 以及本地音频播放器不同, 浏览器是你的计算机连接到外部世界的日常窗口 (之一), 同 时这世界上有无数人 (从恶俗玩网大手子到国安局心血来潮的特工) 想通过这个窗口的漏 洞骇入你的计算机. 而安全更新正是来修复这些漏洞的. 虽然我基本上是自动更新的反对 者, 但我也认为浏览器内核的 及时 更新是很重要的.

另外这些分支浏览器极端受制于上游. 当 Google Chrome 的更新导致除了 Chrome 之外的 浏览器无法通过谷歌帐号同步数据的时候, 几乎所有基于 Chromium 的分支浏览器都对此 束手无策; 类似的事情在最近的 Mainfest v3 更新上会再发生一次. 对于基于 Firefox 的浏览器来说事情是一样的: 它们被迫告别了 XUL 插件支持, gopher 协议支持, 天知道 之后会是什么. 直言不讳地说, Firefox 和 Chrome 在之后大概率会变得越来越臃肿越来 越烂, 这些只是 tweak 一些小选项的分支浏览器对此又能做些什么呢? 呵呵.

Pale Moon & Webbrowser

很多 Hacker 和自称 Hacker 者都会向你推荐 Pale Moon, 在 Pale Moon 变得越来越烂之 后则会向你推荐它的 “纯净” 分支 Webbrowser. 总所周知 Pale Moon 基于一个非常老的 Firefox 的内核版本, 而且这个项目极度缺少开发和维护人员. 它的界面难看的要死, 开发 者的某些决定只能用 insane 来形容. 尤其是在 29 版本移除了对老 XUL 插件的支持之后 (30 版本好像又加回来了), 这个浏览器就没多少使用的意义了. 它缺少及时的安全补丁, 加载主流网站时常遇到问题. 而且使用它你也得不到老火狐或者极简浏览器的好处. 顺带一 提, Webbrowser 的版本仍停留在 29.1, 意味着你可以使用老火狐插件, 也意味着它的安全 更新趋于停止. 总的来说, Pale Moon 及其 fork 都是半死不活的项目. 如果你极度怀念 DownThemAll 和 Stylus, 玩玩 Waterfox Classic 吧. 但我还是要提醒一句: 它也一样有 着大量已经探明的安全漏洞. Use at your own risk!

极简浏览器的失败

我用过 qutebrowser 和 luakit 很长时间. 它们都是不错的浏览器, 但可惜现代互联网太 烂了.

我不推荐你使用任何一个不能运行 uMatrix 或者 uBlock Origin 的浏览器. 我拒绝在没 有动态内容屏蔽能力的浏览器中网上冲浪. 而这些极简浏览器 —— 从 lynx 到 qutebrowser —— 都没有这种功能 (如果哪天它们突然能做到请务必告诉我). So never bother me with any so-called “minimalist web browser”.

Update 2022.11.25: qutebrowser 可能会好一点, 因为有 jmatrix. 它似乎可以直接采用 uMatrix 的配置文件. 但是正如 jmatrix 作者自己承认的那样:

Right now, all we do is block incoming requests. uMatrix does a bit more than this, such as spoofing noscript tags when js is blocked. It also means we cannot block cookies (so those rules will be ignored).

它也没有一个方便的 GUI, 也不能针对不同的站点设置规则 — too limited.

By the way, qutebrowser 其实也没有多 minimal —— 它的后端是 qt-webengine, i.e., Chormium. 可能这也是它在一众小众浏览器里显得最有希望替代 Firefox 与 Chrome 的主 要原因…

如果你确定你需要 (以及你能做到!) 远离现代互联网及其种种恶性肿瘤, 在极简浏览器的 深山中隐居, 你可以看看这篇文章.

最后的选择: 打造你自己的 Firefox

虽然我们先前说了 Firefox 这么多的坏话, 但不能否认, 它仍旧是市面上最具有扩展性和 调整性的浏览器 —— 也许没有之一. 在这方面, Firefox 是独一无二的:

我们逐渐到达了核心部分. 手动调整 Firefox 的设置相当麻烦. 你需要花时间研究所有能 摆弄的设置以及它们的工作原理. 所幸的是有不少人在我们之前已经系统地研究了这些. 有 请:

Arkenfox user.js

Arkenfox 的 user.js 对于调整 Firefox 设置强化安全性这项工作来说是个很好的开始模 板. 这个项目得到了非常积极的维护, 其中贡献者包括 Mozilla 的员工和 Tor browser 的开发者. 说实话这个项目文档已经很齐全了, 我在这里也讲不出来什么花花. So just read the doc and start to use it!

侠客身份 | 社交身份: Firefox 中的配置切换

在现实世界有时候我们不得不作出妥协, 牺牲一点安全与隐私. 比如你们学校的狗屁网站没 有 canvas 就是加载不出来, 难道你要修改你的 user.js, 重启浏览器, 搞定你们学校的 狗屁事务, 再改回 user.js? 不需要这么麻烦. 因为 Firefox 允许你拥有多套配置, 并在 不同配置间随意切换. 在你的命令行中运行 firefox -no-remote -ProfileManager 打 开 Firefox 的配置管理面板, 你可以在其中创建新的配置, 并选择加载哪个配置. 另外, 你还可以用 Firefox 的 -p profile_path-P profile_name 选项直接加载你想要 的配置而不需要特意打开配置管理面板.

这允许我们针对不同情况选择不同的隐私与安全策略. 比如对于在隐私严格配置下无法加 载的网站, 我们就可以临时用隐私一般的配置暂时对付. 或者反过来, 平常使用一些不那 么的配置, 在处理机密事务时再加载更为严格的配置. 这大大加强了我们网上冲浪安全方 案的弹性.

Bonus: 我推荐的浏览器插件

See More…