Der Webbrowser Firefox bietet neben vielen nützlichen Erweiterungen, mit denen zusätzliche Funktionen nachrüsten kann, auch die Möglichkeit, gewisse Dinge anzupassen. Über die Adresse about:config lassen sich wesentlich mehr Parameter einstellen als über die normalen Einstellungen about:preferences. Diese Einstellungen werden im Profilverzeichnis (~/.mozilla/firefox/…) in der Datei prefs.js gesichert.

Daneben gibt es noch die Datei user.js im Profilverzeichnis, die von Firefox zwar gelesen, aber nicht verändert wird und höherwertiger als die prefs.js ist. Da ich mit mehreren Profilen arbeite, habe ich mir eine user.js in ~/.mozilla/firefox angelegt und in allen Profilverzeichnissen einen Symlink darauf gesetzt. So kann ich profilübergreifend zentrale Einstellungen wie die folgenden vornehmen:

user_pref("general.warnOnAboutConfig", false);

// Nur Alt-Drücken zeigt nicht die Menüleiste an
user_pref("ui.key.menuAccessKeyFocuses", false);

// Kompaktere Tab- und Adressleiste
user_pref("browser.uidensity", 1);

user_pref("browser.tabs.insertAfterCurrent", true);
user_pref("privacy.donottrackheader.enabled", true);

Sollte man als Administrator Einstellungen am Firefox vornehmen wollen, die der Benutzer nicht ändern kann, so kann man dies mit einer policies.json erreichen; hier die Beschreibung zur Deaktivierung von DNS-over-HTTPS (DOH). Eine weitere Erklärung für eine autoconfig.js gibt es unter »Firefox mit AutoConfig anpassen | Hilfe zu Firefox für Unternehmen«.

(Überwachungs-)Funktionen von Firefox abschalten

Leider kommt Firefox auch mit einigen unschönen Funktionen wie der Nutzungserfassung und Übermittlung an Mozilla. Zum Teil ist der Wunsch von Mozilla nach solchen Analysefunktionen nachvollziehbar, aber teilweise geht es auch zu weit. Zum Glück ist Firefox so frei, dass sich viele der unerwünschten Funktionen über die user.js deaktivieren lassen.

Kais user.js

Eine sehr gute Sammlung von Einstellungen zur Deaktivierung unschöner Funktionen veröffentlicht Kai regelmäßig im Matrix-Raum #sichere_firefox-einstellungen_de:matrix.chat-secure.de.

Vor dem Einsatz der user.js ist es ratsam, eine Sicherung des Profilverzeichnisses anzufertigen. Es ist zwar nicht zu erwarten, dass es Probleme gibt, aber besser man hat als man hätte. Datensicherungen sind allgemein eine gute Idee.

Version 1.8

(Veröffentlichung),

In der aktuellen Version 1.8 werden die Einstellungen privacy.firstparty.isolate und media.navigator.enabled gesetzt (Danke, @joerg:alea.gnuu.de). Alle Änderung sind wie immer am Anfang der Datei dokumentiert. Außerdem wird die Datei unter die GPLv2 gestellt.

(Veröffentlichung)

Diese Version ist identisch mit der user.js-1.8, jedoch wird hier zusätzlich die Unterstützung für WebRTC (wieder) aktiviert, so dass Videokonferenzen mit Jitsi Meet oder Big Blue Button abgehalten werden können. Wer dies nicht tun möchte, sollte aus Sicherheitsgründen bei der Standard-Version bleiben.

Version 1.7

(Veröffentlichung),

In der aktuellen Version 1.7 werden vor allem das automatische Umschreiben des Schemas von URLs (http → https) und die Installation empfohlener Add-Ons ohne 3rd-Bestätigungsdialog deaktiviert. Alle Änderung sind wie immer am Anfang der Datei dokumentiert.

(Veröffentlichung)

Diese Version ist identisch mit der user.js-1.7, jedoch wird hier zusätzlich die Unterstützung für WebRTC (wieder) aktiviert, so dass Videokonferenzen mit Jitsi Meet oder Big Blue Button abgehalten werden können. Wer dies nicht tun möchte, sollte aus Sicherheitsgründen bei der Standard-Version bleiben.

Version 1.6

(Veröffentlichung),

In der aktuellen Version 1.6 werden die GEO-API, unsichere SSL-Cipher und die Autoplay-Funktion für HTML 5 abgeschaltet. Außerdem wird eine weitere Werbeschnittstelle deaktiviert. Alle Änderung sind wie immer am Anfang der Datei dokumentiert.

(Veröffentlichung)

Diese Version ist identisch mit der user.js-1.6, jedoch wird hier zusätzlich die Unterstützung für WebRTC (wieder) aktiviert, so dass Videokonferenzen mit Jitsi Meet oder Big Blue Button abgehalten werden können. Wer dies nicht tun möchte, sollte aus Sicherheitsgründen bei der Standard-Version bleiben.

Version 1.5

(Veröffentlichung),

In der aktuellen Version 1.5 werden vor allem die Weitergabe von erteilten Berechtigungen (Kamera, Mikrofon etc.) abgeschaltet und die JavaScript-Unterstützung für die interne PDF-Anzeige explizit deaktiviert. Alle Änderung sind wie immer am Anfang der Datei dokumentiert.

(Veröffentlichung)

Diese Version ist identisch mit der user.js-1.5, jedoch wird hier zusätzlich die Unterstützung für WebRTC (wieder) aktiviert, so dass Videokonferenzen mit Jitsi Meet oder Big Blue Button abgehalten werden können. Wer dies nicht tun möchte, sollte aus Sicherheitsgründen bei der Standard-Version bleiben.

Version 1.4

(Veröffentlichung)

In der aktuellen Version 1.4 wird vor allem der JIT-Compiler abgeschaltet. Grund für die Entscheidung ist CVE-2019-17026, eine erneute kritische Schwachstelle im JIT-Compiler.

Version 1.3

(Veröffentlichung)

In der aktuellen Version 1.3 werden die Empfehlungen für die Seite about:addons und die Erkennung einer Netzwerkverbindung abgeschaltet.

Version 1.2

(Veröffentlichung)

In der aktuellen Version 1.2 wird die Integration von Firefox Monitor abgeschaltet. Außerdem wurde ein fehlendes Semikolon ergänzt.

Version 1.1

(Veröffentlichung)

Es gibt eine neue Version der user.js. In der aktuellen Version 1.1 wird das mit Firefox 68 eingeführte Verhalten, CAs des Betriebssystems automatisch zu importieren, wieder abgeschaltet. Gleiches gilt für den automatischen Import der CAs, falls eine Man-in-the-Middle (MITM) Situation erkannt wird (dient der Unterstützung von AV-Software).

Version 1.0

(Veröffentlichung)

Privacytools.io

Von Privacytools.io gibt es neben den Empfehlungen für Erweiterungen zum Schutz der Privatsphäre auch noch eine Liste von Einstellungen für die user.js.

Arkenfox' user.js

Weiterhin habe ich noch »Firefox privacy, security and anti-fingerprinting: a comprehensive user.js template for configuration and hardening« gefunden.