如何将 Mozilla Firefox 浏览器置于锁定状态





5.00/5 (7投票s)
使用 policies.json 文件强制 Firefox 遵守您的偏好设置。
引言
Firefox 曾经是一款出色的浏览器,支持 RSS 和非常广泛的附加组件生态系统。由于不明原因,Mozilla 删除了被认为是浏览器成功的根本性功能。它不仅删除了功能,还添加了一些无用的功能。每个新版本都会破坏现有功能并禁用所有已安装的附加组件。它似乎在进行一场让用户沮丧和疏远的运动。现在,Google Chrome 的入侵几乎完成了。Firefox 只被一群铁杆爱好者使用。您是他们中的一员吗?在本文中,您可以了解如何克服浏览器中最令人沮丧和恼人的非功能。
背景
Firefox 还没死?不,仍然有一些用户忠于 Mozilla 最初的承诺,即夺回网络。Mozilla 可能已经忘记了这个目标,但我们没有。Microsoft Internet Explorer 已RIP。Opera 和 Edge 已经变成了 Chrome 克隆。Firefox 是唯一拥有非 Chrome HTML 渲染引擎的浏览器。然而,在其他方面,Mozilla 正在让 Firefox 越来越依赖于 Google 的生态系统。在本文中,我将记录如何在继续使用 Firefox 的同时避免这种情况。我知道这是一场注定失败的战斗,但目前……
about:config 更改无效
差不多在 Chrome 占据浏览器市场份额的同时,Firefox 开始通过禁用附加组件和在新版本中破坏/消失的功能来惹恼用户。一些用户会修改浏览器在 about:config
页面中的内部设置,使 Firefox 恢复到以前的功能。例如,您可以通过将 app.update.enabled
设置更改为 false
来禁用自动更新。最终,Mozilla 意识到了这些技巧,并使更改无效。
policies.json 是新的替代方案
在许多企业计算机网络中,终端用户软件应用程序由系统管理员安装和控制。应用程序设置也由管理员控制。大多数终端用户或桌面用户被给予最低限度的权限。他们无法自行安装软件。他们甚至可能无法自定义软件。
为了让管理员能够控制 Firefox 安装,Mozilla 提供了对名为policies.json的全局配置文件支持。此文件通常安装在特权位置,例如/etc/firefox/policies/policies.json。具有桌面用户权限的用户将无法修改此文件。在 Windows 中,官方指南说,您需要将 json 文件放在 firefox.exe 所在的名为“distribution”的新文件夹(请创建该文件夹)。
虽然 Firefox 可能会忽略您对 about:config
设置的更改,但它会遵守policies.json文件中的指令。如果您是您计算机的管理员,您可以锁定 Firefox 并使其按照您想要的方式运行。您需要在/etc/firefox/policies目录中创建一个自定义的policies.json文件。然后,Firefox 会认为您处于企业环境中,并被欺骗执行设置更改。
policies.json文件是用 JavaScript 变量值(具有 JSON 结构)的格式编写的。
{ "policies": {
"blah": "blah",
"blah blah": 1,
"blah blah blah": false
}
}
您可以在policies.json文件中使用的设置描述在
https://github.com/mozilla/policy-templates/.
我使用的自定义policies.json文件如下
{
"policies": {
"Cookies": {
"ExpireAtSessionEnd": true,
"Behavior": "reject-foreign",
"BehaviorPrivateBrowsing": "reject-foreign"
},
"DisableAppUpdate": true,
"DisableBuiltinPDFViewer": true,
"DisableFeedbackCommands": true,
"DisableFirefoxAccounts": true,
"DisableFirefoxStudies": true,
"FirefoxHome": {
"Search": false,
"TopSites": false,
"Highlights": false,
"Pocket": false,
"Snippets": false,
"Locked": true
},
"DisablePocket": true,
"DisableTelemetry": true,
"DisplayMenuBar": "always",
"DisableProfileRefresh": false,
"DNSOverHTTPS": {
"Enabled": false
},
"DontCheckDefaultBrowser": true,
"FirefoxHome": {
"Search": false,
"TopSites": false,
"SponsoredTopSites": false,
"Highlights": false,
"Pocket": false,
"SponsoredPocket": false,
"Snippets": false,
"Locked": false
},
"Homepage": {
"URL": "about:blank",
"StartPage": "none",
"Locked": true
},
"ManualAppUpdateOnly": true,
"NetworkPrediction": false,
"NewTabPage": false,
"NoDefaultBookmarks": true,
"OverrideFirstRunPage": "",
"OverridePostUpdatePage": "",
"PDFjs": { "Enabled": false },
"Permissions": {
"Camera": { "BlockNewRequests": true, "Locked": true },
"Microphone": { "BlockNewRequests": true, "Locked": true },
"Location": { "BlockNewRequests": true, "Locked": true },
"Notifications": { "BlockNewRequests": true, "Locked": true },
"VirtualReality": { "BlockNewRequests": true, "Locked": true },
"Autoplay": { "Default": "block-audio-video", "Locked": true }
},
"Preferences": {
"browser.safebrowsing.phishing.enabled": {
"Value": false,
"Status": "locked"
},
"browser.safebrowsing.malware.enabled": {
"Value": false,
"Status": "locked"
},
"browser.search.suggest.enabled": {
"Value": false,
"Status": "locked"
},
"browser.sessionstore.resume_from_crash": {
"Value": false,
"Status": "locked"
},
"browser.tabs.closeWindowWithLastTab": {
"Value": false,
"Status": "locked"
},
"dom.event.clipboardevents.enabled": {
"Value": false,
"Status": "locked"
},
"dom.event.contextmenu.enabled": {
"Value": false,
"Status": "locked"
},
"extensions.htmlaboutaddons.recommendations.enabled": {
"Value": false,
"Status": "locked"
},
"media.mediasource.enabled": {
"Value": false,
"Status": "locked"
}
},
"SanitizeOnShutdown": {
"Cache": true,
"Cookies": true,
"Downloads": true,
"FormData": true,
"History": true,
"Sessions": true,
"SiteSettings": true,
"OfflineApps": true,
"Locked": false
},
"SearchBar": "separate",
"SearchSuggestEnabled": false,
"StartDownloadsInTempDirectory": false,
"UserMessaging": {
"WhatsNew": false,
"ExtensionRecommendations": false,
"FeatureRecommendations": false,
"UrlbarInterventions": false,
"SkipOnboarding": false,
"MoreFromMozilla": false
}
}
}
让我们检查一下这个文件中的设置
- Cookies:Cookies 是浏览器为您访问的网站创建的一个小的唯一文本文件。浏览器将此文件存储在您的配置文件目录中。它只允许特定网站访问此文件。Cookie 即使在您关闭浏览器后仍然存在。当您再次访问该网站时,浏览器会允许该网站读取其 Cookie 的内容。网站通常会在其 Cookie 中存储您的登录详细信息或您的网站偏好设置。如果 Cookie 是您访问的网站创建的,则 Cookie 不是问题。当 Cookie 由 Google 或 Facebook 等广告公司创建时,它们可以跟踪您跨多个网站的浏览习惯。这是如何发生的?您访问的网站很可能会运行来自 Google、Facebook 和其他广告公司的广告。这些广告会创建自己的 Cookie——第三方 Cookie。也就是说,第三方 Cookie 不是您访问的网站创建的。它是在第三方网站在您访问的网站上投放广告时创建的。它除了跟踪您之外没有其他用途。
您可以阻止第三方 Cookie 而不丢失任何功能。为了更安全,您可以在关闭浏览器时让 Firefox 清除所有 Cookie。当您再次访问安全网站时,您可能需要重新登录,但为此,您可以使用浏览器内置的密码管理器。Firefox 允许您保存用户名和密码,并且还会自动填充登录字段。因此,Cookie 功能仅在您登录期间需要,之后不需要。
ExpireAtSessionEnd
:将此选项设置为true
,以便在您关闭浏览器时 Firefox 清除 Cookie。Behavior
:将其设置为reject-foreign
以阻止第三方 Cookie。BehaviorPrivateBrowsing
:将其设置为reject-foreign
以阻止在隐私浏览选项卡和窗口中出现第三方 Cookie。
DisableAppUpdate
:将其设置为true
。与旧版本不同,Firefox 会自行更新,并且每个新版本都会破坏许多附加组件和功能。通过将设置更改为false
,您可以决定何时更新 Firefox。您不会受到利用错误和零日漏洞的黑客的攻击吗?不。您正遭受着关于浏览器更新的轻微妄想。您的浏览器上存在未修复的错误和零日漏洞堆积如山,其距离与地球到月球的距离一样长。浏览器制造商只修复他们认为紧急的错误,以及他们一时兴起的任何事情。您应该做的是创建两个 Firefox 安装和两个 Firefox 配置文件。您应该定期更新第一个安装,第二个则很少更新。将您的附加组件放在第二个中,并仅将其用于随意浏览,例如阅读新闻或消费 RSS feed。使用第一个进行金融交易或需要登录的网站。不,您不必登录您的 Google 帐户即可进行搜索或观看视频。忽略那些告诉您登录并被跟踪有多么开心的弹出窗口。不要让任何人侮辱您的智商。
- 为旧浏览器创建一个随意浏览配置文件。给配置文件起一个名字,比如 ‘
ole
’。/opt/firefox-old/firefox --ProfileManager
- 创建具有此命令的桌面启动器(快捷方式),以便您可以使用随意浏览配置文件(‘
ole
’)运行很少更新的 Firefox 安装。/opt/firefox-old/firefox -P ole
- 为新浏览器创建一个安全浏览配置文件。给配置文件起一个名字,比如 ‘
nuovo
’。/opt/firefox-new/firefox --ProfileManager
- 创建具有此命令的启动器,以便您可以使用安全浏览配置文件(‘
nuovo
’)运行定期更新的 Firefox 安装。/opt/firefox-new/firefox -P nuovo
不要在此配置文件中安装任何附加组件。您安装的每个附加组件都是对您最宝贵数据的另一双眼睛。
/opt目录属于
root
。如果您将 Firefox 下载文件解压到您的主目录,然后将其复制到/opt,那么 Firefox 目录将具有您的用户权限。这意味着 Firefox 在运行时可以自行更新。为这些 Firefox 安装目录设置root
权限。sudo chown -R root /opt/firefox*
这些 Firefox 将从只读的
/opt
目录运行,但能够在其主目录——可写~/.mozilla目录——中创建其配置文件目录。请记住,您必须先在正确的位置创建policies.json,然后创建安装和配置文件。
- 为旧浏览器创建一个随意浏览配置文件。给配置文件起一个名字,比如 ‘
DisableBuiltinPDFViewer
:当您点击 PDF 文档链接时,该文档会像网页一样打开,并在您关闭浏览器时消失!如果您希望文档保存到硬盘并随后在 Evince 或您安装的任何 PDF 阅读器中打开,请将此选项设置为true
。DisableFirefoxStudies
:将此选项设置为true
。‘研究’似乎对 Mozilla 没有帮助。如果不是这样,我不会写这篇文章。除非您是 beta 测试人员,否则 Firefox 不需要研究任何东西。FirefoxHome
:Search
:将此选项设置为false
。搜索 URL 包含一些跟踪信息。您也不想每次启动浏览时都通知 Google。TopSites
:将此选项设置为false
。如果浏览器列出了您的热门网站,那么这意味着 Firefox 正在监控您的浏览活动。Highlights
:老生常谈……老生常谈。Pocket
:将此选项设置为false
。这需要您创建一个 Mozilla 帐户,以便他们能够更好地跟踪您。Snippets
:同上。Locked
:将此选项设置为true
。以防止您错误地更改任何设置。
DisableFirefoxAccounts
:将此选项设置为true
。不要创建任何 Firefox 帐户。Mozilla 说他们没有钱来开发 Thunderbird 邮件客户端,但他们却有钱为数百万用户创建帐户?他们解雇了 Firefox 开发人员,同时还将资源转移到诸如“打击假新闻!”之类的党派执念上。他们似乎放错了优先级。不要纵容他们。DisablePocket
:🙄 ⇑ 🙄 ⇑ 🙄 ⇑DisableFirefoxStudies
:是的,beta 测试人员!没有吗?将此选项设置为true
。DisableTelemetry
:⇑ 🙄 ⇑ 🙄 ⇑ 🙄DisplayMenuBar
:Firefox 开发人员从 Chrome 窃取了这个‘创新’。选项意味着决定。决定意味着思考。Chrome 用户不思考。Google 为他们思考。如果您是那种可怕的、认为“你很邪恶(男女)”的人,请将此选项设置为true
。我敢打赌!DNSOverHTTPS
:将Enabled
设置为false
,因为这是发送数据到 Cloudflare(又名 Amazon)的借口。什么?您不信任您的 ISP?现在谁才是偏执狂?DontCheckDefaultBrowser
:将此选项设置为true
。如果您运行多个浏览器或配置文件,您应该手动设置默认浏览器。主页
:URL
:将其设置为空字符串。没有主页意味着启动更快。Locked
:将此选项设置为true
。不要让浏览器更新干扰这些设置。StartPage
:将其设置为none
。没有干扰。没有跟踪。没有延迟。
ManualAppUpdateOnly
:将此选项设置为true
以阻止 Firefox 检查或下载更新。NetworkPrediction
:将此选项设置为false
以防止 Firefox 进行不必要的查询。NoDefaultBookmarks
:将此选项设置为true
。减少混乱。OverrideFirstRunPage
:将其设置为空字符串。安装后的第一件事就是‘打电话回家’。😉OverridePostUpdatePage
:将其设置为空字符串。我们不去医院,所以不需要给我们寄账单。PDFjs
:它有多少个头像?将Enabled
设置为false
。Permissions
:浏览器现在可以访问您的麦克风和网络摄像头。后者有一个指示器,在被访问时会亮起。麦克风则没有。阻止所有内容,除非您需要进行视频会议。如果您没有录制任何内容,请在网络摄像头上贴上黑色胶带。在您计算机的音频配置设置中,仅启用输出设备。这将在操作系统级别禁用麦克风(输入设备)。Camera
:将BlockNewRequests
和Locked
设置为true
。Microphone
:同上。Location
:同上。Notifications
:同上。VirtualReality
:同上。Autoplay
:防止未打开的选项卡中的视频自动播放。如果您打开多个选项卡,视频可能会占用您的带宽,并可能导致您的浏览器/选项卡进程崩溃。将Default
设置为block-audio-video
,并将Locked
设置为true
。
Preferences
:这些是您可以通过此 json 文件自动设置的about:config
设置。browser.safebrowsing.*.enabled
:将这些选项设置为false
。无需向 Google 验证每个请求的域或文件以进行恶意软件检查。不要访问不良网站,也不要点击不良下载。现在您只能靠自己了。browser.sessionstore.resume_from_crash
:将此选项设置为false
。您不希望在崩溃后重新加载银行网站。browser.tabs.closeWindowWithLastTab
:我想知道 Chrome 在您关闭最后一个选项卡时是否会自行关闭。我敢打赌它会一直开到世界末日。Firefox 只是找个借口退出。Mozilla 不希望任何人使用 Firefox。如果您想从干净的状态打开新选项卡怎么办?将此选项设置为false
。dom.event.clipboardevents.enabled
:此设置对于那些允许您只需单击即可复制 URL 或其他重要文本(而不是按Ctrl+C
选择文本)的网站很有用。其他一些网站则利用此机会将不想要的文本(例如其网站名称和 URL)添加到复制的文本中。如果您对垃圾邮件发送者感到厌烦,请将此选项设置为false
。dom.event.contextmenu.enabled
:一些网站,例如由印度银行运营的网站,会阻止右键菜单。如果您想要该菜单,请将此选项设置为true
。browser.search.suggest.enabled
:就像您不希望搜索引擎跟踪您的搜索一样,您也不应该知道其他人搜索了什么。这可能会非常令人厌恶,尤其是使用 Google 时。将此选项设置为false
。media.mediasource.enabled
:即使我现在有高速互联网,我也无法可靠地流式传输视频。我的视频播放器盒会在中间卡住。我没有生气,而是直接进入视频频道,批量下载所有有趣的视频,然后在离线时观看。我有一个 Greasemonkey 脚本来做这件事。如果此设置设置为true
,此脚本将不起作用。也有可以下载 mediasource 视频的附加组件,但我喜欢自己做。
NewTabPage
:不,您不需要那个。您需要的是about:blank
。将此选项设置为false
。SanitizeOnShutdown
:让 Firefox 在关闭时自动删除 Cookie、缓存文件、下载列表、历史记录、会话和离线应用程序数据(Cookie 的扩展版本)。SearchBar
:将此选项设置为separate
。否则,您将最终只使用一个搜索引擎来搜索所有内容。SearchSuggestEnabled
:搜索引擎会存储您搜索的所有内容,甚至包括您的更正。将此选项设置为false
。UserMessaging
:由您来评判。由您来决定。不要将您的决策外包给营销人员。将WhatsNew
、ExtensionRecommendations
、FeatureRecommendations
、UrlbarInterventions
、SkipOnboarding
、MoreFromMozilla
设置为false
。
仅限 ESR 的 policies.json 选项
某些policies.json选项仅在 Firefox ESR(扩展支持版本)中受支持。这些版本比普通 Firefox 版本更新的频率要低得多。自动添加新搜索引擎和删除内置搜索引擎的功能仅在 Firefox ESR 中可用。(Mozilla 已停止支持 OpenSearch 搜索引擎附加组件。)我在我的policies.json文件中使用这些附加选项。
"SearchEngines": {
"PreventInstalls": false,
"Add": [
{ "Name": "Bing",
"URLTemplate": "https://www.bing.com/search?q={searchTerms}",
"Method": "GET",
"IconURL": "https://www.bing.com/favicon.ico",
"Alias": "bi",
"Description": "Bing search engine"
},
{ "Name": "DuckDuckGo HTML",
"URLTemplate": "https://html.duckduckgo.com/html/",
"Method": "POST",
"IconURL": "https://duckduckgo.com/favicon.ico",
"Alias": "dh",
"Description": "DuckDuckGo HTML search engine",
"PostData":"q={searchTerms}"
},
{ "Name": "DuckDuckGo Plain",
"URLTemplate": "https://duckduckgo.com/?q={searchTerms}",
"Method": "GET",
"IconURL": "https://duckduckgo.com/favicon.ico",
"Alias": "dd",
"Description": "DuckDuckGo ordinary search engine"
},
{ "Name": "Amazon",
"URLTemplate": "https://www.amazon.com/s?k={searchTerms}",
"Method": "GET",
"IconURL": "https://www.amazon.com/favicon.ico",
"Alias": "am",
"Description": "Amazon product search"
},
{ "Name": "Amazon India",
"URLTemplate": "https://www.amazon.in/s?k={searchTerms}",
"Method": "GET",
"IconURL": "https://www.amazon.com/favicon.ico",
"Alias": "ai",
"Description": "Amazon India product search"
},
{ "Name": "Internet Archive",
"URLTemplate": "https://web.archive.org/web/*/{searchTerms}",
"Method": "GET",
"IconURL": "https://archive.org/favicon.ico",
"Alias": "ia",
"Description": "Web archive search"
},
{ "Name": "Google",
"URLTemplate": "https://www.google.com/search?q={searchTerms}",
"Method": "GET",
"IconURL": "https://www.google.com/favicon.ico",
"Alias": "o",
"Description": "Google search"
},
{ "Name": "Google Images",
"URLTemplate": "https://www.google.com/search?tbm=isch&q={searchTerms}",
"Method": "GET",
"IconURL": "https://www.google.com/favicon.ico",
"Alias": "oi",
"Description": "Google image search"
},
{ "Name": "Google News (USA)",
"URLTemplate": "https://www.google.com/search?hl=en-US&gl=US&tbm=nws&tbs=sbd:1&q={searchTerms}",
"Method": "GET",
"IconURL": "https://ssl.gstatic.com/gnews/logo/google_news_192.png",
"Alias": "on",
"Description": "Google news search"
},
{ "Name": "IMDB",
"URLTemplate": "https://www.imdb.com/find?q={searchTerms}",
"Method": "GET",
"IconURL": "https://www.imdb.com/favicon.ico",
"Alias": "im",
"Description": "Internet Movie Database search"
},
{ "Name": "Youtube",
"URLTemplate": "https://www.youtube.com/results?search_query={searchTerms}&sp=CAI%253D",
"Method": "GET",
"IconURL": "https://www.youtube.com/favicon.ico",
"Alias": "yt",
"Description": "Youtube search"
}
]
},
如果您想利用这些附加选项,请访问 https://ftp.mozilla.org/pub/firefox/releases/ 并下载标记为 ESR 的 Firefox 版本以供您的操作系统使用。
Youtube.com 的搜索默认使用“按相关性”进行过滤。他们所说的“按相关性”通常是指(由传统媒体发布的)不相关的视频,这些视频被人为地推到顶部。此 policies.json 添加的自定义搜索引擎使用“按上传日期”过滤器。这将带来独立 YouTuber 的最新结果。如果您从 YouTube 网页的搜索框中进行相同的搜索,结果会自动恢复为 YouTube 的“按相关性”过滤器。
HOSTS 文件
拥有一个“阻止”的 hosts 文件是减少您的浏览活动环境足迹最有效的方法。来自社交媒体网站和广告的 JavaScript 是网页缓慢的头号原因。当您使用阻止的 hosts 文件时,这些网站的内容交付域将被指向 IP 0.0.0.0。您的浏览器将直接放弃这些请求。
我使用这个项目的hosts文件
DNS
不要将您的调制解调器配置中的 DNS 服务器设置为 8.8.8.8 或 8.8.4.4(都来自 Google)或 1.1.1.1(来自 Cloudflare ~ Amazon)。而是使用您的 ISP 提供的 DNS 或来自其他免费 DNS 服务(如 Comodo(8.26.56.26 和 8.20.247.20)或 OpenDNS(208.67.222.123 和 208.67.220.123))提供的 DNS。将您的互联网足迹分散到多个提供商,并使其变薄。请注意,这些替代 DNS 服务器提供家庭友好型过滤结果。
Chrome 替代品
当然,也有 Opera、Edge、Brave 和 Vivaldi 等 Chrome 替代品。当 Microsoft Edge 转向 Chromium 引擎时,他们透露他们从开源代码中替换了几个与 Google 相关的依赖项。这是一个很长的列表。(Microsoft 揭示了其 Chromium Edge 浏览器中删除的所有 Google 相关内容;The Verge;2019)Microsoft 有自己的专有替换方案。其他 Chrome 替代品又删除了多少?
摘要
在我看来
- 使用 Chrome 或其克隆版可能不利于万维网。
- 对浏览器单一文化说不,并在您还能使用时使用 Firefox。
您还可以使用 Greasemonkey 和 Stylus 等附加组件来运行用户 CSS 和 JS,并根据您的喜好自定义网站。为了维护您的匿名性,请使用 RSS 阅读器来消费新闻。RSS 阅读器可以作为浏览器附加组件和独立的桌面/移动应用程序提供。Thunderbird 邮件客户端允许您像浏览电子邮件一样浏览 RSS 内容。
注释
- 本文最初发表在Open Source For You杂志上,时间是 2022 年。我于 2023 年将其重新发布到 CodeProject。
- 本文来源于我的书Linux 命令行技巧与窍门。该书可在许多电子书商店免费获取。
历史
- 2023 年 3 月 14 日:初始版本
- 2023 年 3 月 29 日:添加了仅限 ESR 的policies.json选项