Firefox: about:config | user.js – Firefox-Kompendium Teil10

1. Kommandozentraleuser.js

In der Artikelserie »Firefox-Kompendium« haben wir uns bisher mit diversen Firefox-Add-ons befasst. Sofern diese korrekt eingestellt sind, können sie zum Schutz der Sicherheit und Privatsphäre beim Surfen im Internet beitragen. Eine Besonderheit von Firefox haben wir bis dato allerdings noch außen vor gelassen: Die »geheime« Kommandozentrale about:config.

Bis heute bietet Firefox die Möglichkeit, nahezu jeden einzelnen Aspekt des Browsers über die about:config zu steuern. Allerdings sind nur die wenigsten Nutzer geduldig genug, um alle Einstellungen tatsächlich durchzusehen und herauszufinden, was sie bewirken und ob diese einen Vorteil bringen. Dank großartiger Projekte ist dieser Aufwand zum Glück auch gar nicht notwendig.

Im vorliegenden Beitrag befassen wir uns mit der about:config und einer speziellen Datei (user.js), mit der sich Firefox sowohl sicherer als auch datenschutzfreundlicher betreiben lässt.

Dieser Beitrag ist Teil einer Artikelserie:

2. about:config

Über die about:config lässt sich der Konfigurationseditor von Firefox aufrufen – eine mächtige Kommandozentrale, die euch die Konfiguration von Optionen und Parametern ermöglicht, welche über die grafischen Einstellungen nicht erreichbar sind. Die Anpassung von Parametern geht allerdings mit einer großen Verantwortung einher, da sich eine falsche bzw. unbedachte Veränderung auch negativ auf die Sicherheit und Privatsphäre beim Surfen auswirken kann. Nach der Eingabe about:config in die Adresszeile erscheint daher ein Warnhinweis, den man zunächst bestätigen muss:

about:config

2.1 user.js

Insbesondere Anfänger sollten von einem Eingriff in die about:config allerdings besser absehen. Es existiert nämlich noch eine alternative Variante, mit dem sich wichtige Einstellungen bezüglich Sicherheit und Datenschutz vornehmen lassen. Alle Konfigurationsanpassungen lassen sich auch in einer Datei, der sogenannten user.js, zusammenfassen. Dabei handelt es sich um eine Konfigurationsdatei im JavaScript-Format, die Firefox bei jedem Start des Browsers einliest und anwendet.

Egal ob Anfänger, Fortgeschrittener oder Power-User, eine user.js ist für all jene interessant, die Einstellungen nicht manuell über die about:config vornehmen möchten. Des Weiteren erleichtert eine user.js die Übertragung benutzerdefinierter Einstellungen in ein anderes Profil bzw. Firefox-Installation.

2.2 Weshalb der Aufwand?

Aus der Perspektive eines datenschutzsensiblen Nutzers gilt beim Surfen über einen Browser eine einfache Regel:

Wir möchten nicht, dass unser Browser eine Verbindung zu Webseiten herstellt, es sei denn, wir weisen ihn an, dies zu tun.

Standardmäßig verbinden sich die meisten Browser allerdings aus den unterschiedlichsten Gründen zu diversen Servern bzw. Diensten – auch Firefox stellt hier im Auslieferungszustand keine Ausnahme dar. Bereits im ersten Teil der Artikelserie hatte ich unter Ziffer 2 diverse Designentscheidungen von Mozilla kritisiert, die einen datensparsamen Betrieb des Browsers erschweren. Firefox nimmt unter anderem für folgende Zwecke eine Verbindung zu Mozilla auf:

  • Telemetrie
  • Gesundheitsbericht
  • Crash-Bericht
  • Herzschlag

Doch damit nicht genug, denn abseits von der Übersendung von solchen Diagnosedaten existieren noch weitere Fälle, bei denen Firefox eine Verbindung ohne unsere Einverständnis aufbaut. Eine kleine Auswahl:

  • Captive-Portal: Zur Erkennung von Portalseiten von WLAN-Hotspots (bspw. in Hotels) ruft Firefox beim Start und weiteren Ereignissen die URL http://detectportal.firefox.com/success.txt auf. Abgesehen von der Nützlichkeit dieses Services bedeutet die Erkennung möglicher Portalseiten auch immer, dass eine Verbindung zu Mozilla aufgebaut wird – obwohl man dies vielleicht nicht möchte bzw. bei einem stationären Rechner überhaupt nicht benötigt.
  • Standortservice: Zur Standortbestimmung (für Webseiten) nutzt Firefox den Google Location Service. Dabei wird die IP-Adresse, Informationen zu den in der Nähe befindlichen WLAN-Access-Points und ein Identifier an Google übermittelt, der alle zwei Wochen verfällt. Obwohl Firefox vor der Standortbestimmung um Erlaubnis fragt, verzichten insbesondere datenschutzsensible Nutzer gerne auf die »Dienste« von Google.
  • Suchvorschläge: Standardmäßig überträgt Firefox jeden einzelnen Buchstaben bzw. unsere Eingabe an eine Suchmaschine, ohne dass wir die Suchabfrage überhaupt abgesendet haben. Diese »Komfortfunktion« ermöglicht einer Suchmaschine direkt auf die Eingaben zu reagieren und entsprechend Suchvorschläge einzublenden. Andererseits bedeutet das auch, dass jede Eingabe an eine Suchmaschine übermittelt wird – auch Passwörter, die wir eventuell versehentlich in die Suchmaske übertragen.

Die genannten Funktionen haben durchaus ihre Berechtigung und stellen für den Nutzer unter bestimmten Voraussetzungen sicherlich auch einen Mehrwert dar. Allerdings sollten wir uns auch vor Augen führen, dass der Browser damit praktisch permanent Daten an Drittanbieter übermittelt und damit die oben genannte Regel sofort hinfällig wird.

Über die about:config bzw. eine user.js können wir diese permanente Übermittlung von Daten bzw. Informationen regulieren. Bis zu welchem Grad wir dies tun, liegt insbesondere daran, auf wie viel Komfort bzw. Funktionalität wir bereit sind zu verzichten.

Durch entsprechende Anpassungen an der about:config können wir allerdings nicht nur die Datenübermittlung einschränken, sondern unter anderem auch Einfluss darauf nehmen, wie trackbar sich Firefox verhält und ebenfalls die Sicherheit beim Surfen verbessern.

Hinweis

Mozilla ist sich der angesprochenen Problematik durchaus bewusst und erklärt dem besorgten Nutzer im Beitrag »Firefox baut unaufgefordert Verbindungen auf«, für welche Zwecke der Browser diverse Verbindungen initiiert.

2.3 user.js-Projekte

Es wäre ein enormer Aufwand, alle Einstellungen und Parameter zu analysieren, mit denen sich Firefox über die about:config bzw. eine user.js beeinflussen lässt. Denn trotzt einer ausführlichen Dokumentation handelt es sich um hunderte von Parametern – selbst fortgeschrittene Nutzer stoßen schnell an ihre Grenzen und sind schlichtweg überfordert. Abhilfe schaffen vorgefertigte user.js, die uns eine aufwendige Analyse abnehmen. Anbei ein paar Projekte, die sich dieser komplexen Aufgabe annehmen:

  • Privacy-Handbuch: Da sich nicht alle Wünsche unter einen Hut bringen lassen, bietet das Privacy-Handbuch drei unterschiedliche user.js an. Mit jeder user.js steigt der Schutz der Sicherheit und Privatsphäre – allerdings auf Kosten von Funktionen bzw. Komfort. Nach meiner Auffassung eignen sich die minimale user.js und auch moderate user.js jeweils für Fortgeschrittene. Die strenge user.js ist relativ strikt und blockiert vieles, was für Tracking sowie Sicherheit relevant sein könnte. Welche Veränderungen die jeweilige user.js bewirkt, könnt ihr auf der Wiki-Seite des Privacy-Handbuchs nachlesen.
  • Firefox configuration hardening: Das Projekt Firefox configuration hardening bietet in einem GitHub-Branch eine »relaxed« user.js, die nicht ganz so streng ist wie der Master-Branch. Beide user.js sind gut dokumentiert, adressieren allerdings auch eher fortgeschrittene Nutzer, die bspw. bei Problemen mit der Seitendarstellung einzelner Webseiten entsprechend wissen, welche Parameter sie anpassen müssen.
  • Arkenfox user.js: Das Projekt Arkenfox user.js ist ebenfalls bestens dokumentiert und äußerst umfangreich. Auch diese user.js adressiert insbesondere fortgeschrittene Nutzer, die dazu bereit sind, die Vorlage an ihre Bedürfnisse anzupassen. Die Standardeinstellungen sind relativ restriktiv und machen ein manuelles Nachjustieren oftmals erforderlich.

Insgesamt leisten die genannten Projekte eine großartige Arbeit. Allerdings darf man nicht verschweigen, dass viele Einstellungen in den user.js-Vorlagen entweder die Benutzerfreundlichkeit beeinflussen oder spürbare Auswirkungen auf die Leistung haben – wie bspw. beim Deaktivieren von HTTP2 oder dem (Webseiten-)Prefetching. Die Steigerung von Sicherheit und Privatsphäre geht daher oftmals mit einem Verlust von Komfort / Funktionen einher. Ihr werdet daher nicht umhinkommen, für euch selbst festzulegen, auf wie viel Komfort ihr zugunsten von Sicherheit und Privatsphäre verzichten möchtet. Das bedeutet: Eine vorgefertigte user.js erleichtert euch den Einstieg und nimmt euch auch eine Menge Arbeit ab – das Feintuning müsst ihr allerdings selbst übernehmen.

Für Anfänger kommen die vorgestellten user.js-Vorlagen nach meiner Auffassung allerdings nicht in Frage. Dieses insbesondere deshalb, weil sie Funktionen zu sehr beschränken oder aufgrund von zu restriktiven Einstellungen die Darstellung von Webseiten schlichtweg »kaputt« machen. Ein Durchschnittsnutzer wird sich in solchen Fällen kaum selbst behelfen können, sondern wird aus Verzweiflung vermutlich sogar den Firefox neu installieren. Aufgrund dieses Dilemmas habe ich mich dazu entschieden eine einsteigerfreundliche user.js anzubieten. Der Fokus liegt auf der Minimierung der »Nach-Hause-Telefonieren-Funktionen« und Verbesserung der Sicherheit, ohne dabei (gewohnte) Funktionen zu beeinträchtigen.

3. user.js: Anfänger

Bevor wir die user.js in Betrieb nehmen, möchte ich euch noch ein paar Hinweise mit auf den Weg geben:

3.1 Inbetriebnahme der user.js

Die user.js ist im Grunde nichts anderes als eine textbasierte Datei mit der Endung js. Ihr könnt eine user.js mit einem Text-Editor entweder selbst erstellen oder nachfolgend (Ziffer 3.3) einfach herunterladen. Anschließend müsst ihr die user.js in das Profil-Verzeichnis von Firefox kopieren, damit die Einstellungen bzw. Parameter eingebunden werden. Das Profil-Verzeichnis beinhaltet unter anderem eure Lesezeichen, installierten Add-ons und andere Daten, die bei der Nutzung von Firefox anfallen. Über einen einfachen Trick gelangt ihr ohne viel Suchen zum Profil-Ordner – egal auf welchem System:

Klickt innerhalb von Firefox auf die Menüschaltfläche -> Hilfe und selektiert anschließend Informationen zur Fehlerbehebung.

Hilfe

Anschließend öffnet sich eine Übersicht mit vielen Informationen. Klickt unter Allgemeine Informationen auf die Schaltfläche Verzeichnis öffnen, um zum Profil-Verzeichnis zu gelangen. Der Pfad zum Profil wird hinter der Schaltfläche ebenfalls angezeigt – damit könnt ihr das Verzeichnis nicht verfehlen:

Profil-Verzeichnis

Sobald ihr das Profil-Verzeichnis geöffnet habt, beendet ihr den Firefox-Browser. Bevor ihr die user.js-Vorlage in den Ordner kopiert, legt ihr euch zunächst eine Sicherheitskopie der Datei prefs.js an, die ihr direkt im Profil-Verzeichnis findet – diese beinhaltet alle eure aktuellen Einstellungen und wird benötigt, falls ihr die Änderungen durch die user.js (möglichst einfach) wieder rückgängig machen wollt. Danach könnt ihr die user.js in das Profil-Verzeichnis kopieren und Firefox anschließend neu starten, damit alle Parameter eingelesen und angewendet werden.

3.2 Änderungen rückgängig machen

Die von mir bereitgestellte user.js sollte die gewohnte Funktionalität von Firefox in keiner Weise beeinträchtigen. Möchtet ihr die Änderungen dennoch wieder rückgängig machen, so stehen euch verschiedene Möglichkeiten zur Verfügung:

  • Einfach: Wie empfohlen habt ihr sicherlich eine Sicherheitskopie der Datei prefs.js angelegt. Überschreibt die vorhandene prefs.js einfach mit der bestehenden Sicherheitskopie und löscht anschließend die user.js aus dem Profil-Verzeichnis. Anschließend sind alle Änderungen wieder zurückgesetzt. Allerdings solltet ihr dabei beachten, dass auch alle anderen Änderungen, die ihr selbst vorgenommen habt, nun wieder auf den Zeitpunkt bzw. Zustand zurückgesetzt werden, als ihr die Sicherheitskopie der prefs.js angelegt habt.
  • Aufwendig: Alternativ könnt ihr auch die about:config aufrufen und alle Werte suchen, die durch die user.js verändert wurden. Diese könnt ihr dann manuell wieder auf den Ausgangswert zurücksetzen.
  • Radikal: Ihr könnt auch euer gesamtes Firefox-Profil mitsamt allen Add-ons und Einstellungen zurücksetzen bzw. den Ausgangszustand wiederherstellen. Dann verliert ihr allerdings alles, also auch eure Lesezeichen usw.

3.3 Vorlage

Die nachfolgende user.js-Vorlage deaktiviert insbesondere die Telemetrie- bzw. Diagnosefunktion von Firefox weitestgehend. Was wir durch die Anpassungen konkret erreichen:

  • Reduktion der Datenübermittlung: Durch die Anpassungen erreichen wir etwas mehr Privatsphäre gegenüber Mozilla. Wir möchten nicht an Studien bzw. Experimenten teilnehmen, ständig Telemetrie-Daten übermitteln oder Absturzberichte senden, die sensible Informationen beinhalten könnten. Weiterhin deaktivieren wir Google Safe Browsing – aus Sicherheitsgründen ist die Deaktivierung nicht unbedingt empfehlenswert, allerdings blockieren wir Malware- und Phishing-Seiten bereits mit dem Add-on uBlock Origin. Mit der Deaktivierung von Google Safe Browsing kappen wir also die ungewollte Verbindung zu Google.
  • Erhöhung der Privatsphäre gegenüber Suchmaschinen: Wie bereits dargestellt übermittelt Firefox standardmäßig jeden einzelnen Buchstaben bzw. unsere Eingabe an eine Suchmaschine, ohne dass wir die Suchabfrage überhaupt abgesendet haben. Diese »Komfortfunktion« wird über die user.js deaktiviert. Wer die Funktion beibehalten möchte, der kann optional folgende drei Zeilen einfach entfernen:
    ## Disable location bar LIVE search suggestions
    user_pref("browser.search.suggest.enabled", false);
    user_pref("browser.urlbar.suggest.searches", false);
    
  • Minimale Verbesserung der (visuellen) Sicherheit: Es gibt heute keine plausible Ausrede, weshalb man eine Webseite bzw. einen Dienst nicht TLS-verschlüsselt anbieten sollte. Sobald der Firefox eine unverschlüsselte Verbindung zu einer Webseite aufbaut, wird euch dies deutlich visualisiert. Vor der URL erscheint ein durchgestrichenes Schloss gefolgt von der Information »Nicht sicher«:

Unsicher: Kein TLS

Insgesamt soll die user.js die Funktionalität von Firefox nicht beeinträchtigen – gleichwohl aber für etwas mehr Privatsphäre und Sicherheit sorgen. Gleichwohl gilt es zu bedenken, dass dies nur eine Momentaufnahme darstellt. Bereits in der nächsten Firefox-Version kann Mozilla neue »Nach-Hause-Telefonieren-Funktionen« hinzufügen, die dann wieder über die about:config deaktiviert werden müssen.

Wer noch mehr Kontrolle anstrebt, der sollte sich eingehend mit den Parametern der about:config von Firefox befassen. Wenn du der Meinung bist, dass die user.js für Anfänger noch um weitere Parameter ergänzt werden sollte, dann kannst du gerne die Kommentarfunktion für dein Feedback nutzen.

Update

10.11.2021: Aktualisierung der user.js vorgenommen.

Anbei die user.js-Vorlage als Download bzw. als Text-Vorlage zum kopieren:

# Mozilla User Preferences
# kuketz-blog.de | Firefox-Kompendium | 10.11.2021 | Firefox 94.0.1
# Download: https://www.kuketz-blog.de/firefox-aboutconfig-user-js-firefox-kompendium-teil10/

#############
## PRIVACY ##
#############

## Disable Domain Guessing
user_pref("browser.fixup.alternate.enabled", false);

## Disable Normandy/Shield (FF60+)
user_pref("app.normandy.enabled", false);
user_pref("app.shield.optoutstudies.enabled", false);

## Disable Activity Stream (AS)
user_pref("browser.newtabpage.activity-stream.feeds.snippets", false); 
user_pref("browser.newtabpage.activity-stream.feeds.topsites", false); 
user_pref("browser.newtabpage.activity-stream.feeds.system.topsites", false); 
user_pref("browser.newtabpage.activity-stream.showSponsored", false); 
user_pref("browser.newtabpage.activity-stream.showSponsoredTopSites", false); 
user_pref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons", false); 
user_pref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features", false); 
user_pref("browser.newtabpage.activity-stream.section.highlights.includePocket", false); 
user_pref("browser.newtabpage.activity-stream.feeds.telemetry", false); 
user_pref("browser.newtabpage.activity-stream.telemetry", false);

## Disable PingCentre Telemetry
user_pref("browser.ping-centre.telemetry", false);

## Disable NewTabPage
user_pref("browser.newtabpage.enabled", false); 
user_pref("browser.messaging-system.whatsNewPanel.enabled", false);

## Disable Safe Browsing
# Disable binaries NOT in local lists being checked by Google (real-time checking)
user_pref("browser.safebrowsing.downloads.remote.enabled", false);
user_pref("browser.safebrowsing.downloads.remote.url", "");
# Disable "Block dangerous downloads" (under Options>Privacy & Security)
user_pref("browser.safebrowsing.downloads.enabled", false);
# This covers deceptive sites such as phishing and social engineering
user_pref("browser.safebrowsing.phishing.enabled", false);
user_pref("browser.safebrowsing.malware.enabled", false);
# Disable "Warn me about unwanted and uncommon software" (under Options>Privacy & Security)
user_pref("browser.safebrowsing.downloads.remote.block_potentially_unwanted", false);
user_pref("browser.safebrowsing.downloads.remote.block_uncommon", false);
user_pref("browser.safebrowsing.downloads.remote.block_dangerous", false);
user_pref("browser.safebrowsing.downloads.remote.block_dangerous_host", false);
# Disable Mozilla's blocklist for known Flash tracking/fingerprinting
user_pref("browser.safebrowsing.blockedURIs.enabled", false);
# Disable reporting URLs
user_pref("browser.safebrowsing.provider.google.reportURL", "");
user_pref("browser.safebrowsing.reportPhishURL", "");
user_pref("browser.safebrowsing.provider.google4.reportURL", ""); 
user_pref("browser.safebrowsing.provider.google.reportMalwareMistakeURL", ""); 
user_pref("browser.safebrowsing.provider.google.reportPhishMistakeURL", ""); 
user_pref("browser.safebrowsing.provider.google4.reportMalwareMistakeURL", ""); 
user_pref("browser.safebrowsing.provider.google4.reportPhishMistakeURL", "");
# Disable data sharing (FF58+)
user_pref("browser.safebrowsing.provider.google4.dataSharing.enabled", false);
user_pref("browser.safebrowsing.provider.google4.dataSharingURL", "");

## Disable location bar LIVE search suggestions
user_pref("browser.search.suggest.enabled", false);
user_pref("browser.urlbar.suggest.searches", false);

## Disable Slow Startup Notifications and Telemetry
user_pref("browser.slowStartup.notificationDisabled", true);
user_pref("browser.slowStartup.maxSamples", 0);
user_pref("browser.slowStartup.samples", 0);

## Disable sending of crash reports (FF44+)
user_pref("browser.tabs.crashReporting.sendReport", false);
user_pref("browser.crashReports.unsubmittedCheck.enabled", false);
user_pref("browser.crashReports.unsubmittedCheck.autoSubmit2", false);

## Disable Health Report
user_pref("datareporting.healthreport.uploadEnabled", false);
user_pref("datareporting.policy.dataSubmissionEnabled", false);

## Disable Extension Metadata updating to addons.mozilla.org
user_pref("extensions.getAddons.cache.enabled", false);

## Disable Telemetry
user_pref("toolkit.coverage.endpoint.base", ""); 
user_pref("toolkit.coverage.opt-out", true); 
user_pref("toolkit.telemetry.archive.enabled", false); 
user_pref("toolkit.telemetry.coverage.opt-out", true); 
user_pref("toolkit.telemetry.hybridContent.enabled", false); 
user_pref("toolkit.telemetry.bhrPing.enabled", false); 
user_pref("toolkit.telemetry.firstShutdownPing.enabled", false); 
user_pref("toolkit.telemetry.newProfilePing.enabled", false); 
user_pref("toolkit.telemetry.shutdownPingSender.enabled", false); 
user_pref("toolkit.telemetry.updatePing.enabled", false); 
user_pref("toolkit.telemetry.unified", false);

##############
## SECURITY ##
##############

## Enforce Punycode for Internationalized Domain Names to eliminate possible spoofing
user_pref("network.IDN_show_punycode", true);

## Display all parts of the URL in the location bar eg. http(s):// 
user_pref("browser.urlbar.trimURLs", false);

## Display "insecure" icon (FF59+) and "Not Secure" text (FF60+) on HTTP sites
user_pref("security.insecure_connection_icon.enabled", true);
user_pref("security.insecure_connection_icon.pbmode.enabled", true);
user_pref("security.insecure_connection_text.enabled", true);
user_pref("security.insecure_connection_text.pbmode.enabled", true);

4. user.js: Fortgeschrittene

Firefox bietet ein wahres Sammelsurium an Einstellungsmöglichkeiten. Fortgeschrittene Nutzer können ihren Browser über die about:config bzw. user.js perfekt an ihre Bedürfnisse anpassen. Insbesondere datenschutz- und sicherheitssensible Nutzer sollten sich in diesem Zusammenhang folgende Frage stellen:

Auf wie viel Komfort / Funktionalität kann ich zugunsten einer Verbesserung der Sicherheit und Privatsphäre verzichten?

Im Grunde liegt es nämlich ganz bei euch, ob ihr den Parameter

  • geo.enabled auf »false« setzt und damit die ungefähre Geo-Lokalisierung mittels IP-Adresse / WLAN-Access-Point per Google Locations Service vollständig deaktiviert, gleichzeitig aber Webseiten der Möglichkeit beraubt, (auf Anfrage) euren ungefähren Standort zu bestimmen.
  • browser.pagethumbnails.capturing_disabled auf »true« setzt und damit der Speicherung von Screenshots von jeder besuchten Webseite widersprecht, die Firefox anschließend als Vorschaubild (New Tab Page) einblendet.
  • network.captive-portal-service.enabled auf »false« setzt und damit die kontinuierliche Anfrage bei Mozilla unterbindet, gleichzeitig allerdings die Erkennung von einem Captive Portal für WLAN-Hotsposts deaktiviert und somit vielleicht nur über Umwege ins Hotel-Internet gelangt.
  • security.tls.version.min auf den Wert »3« setzt und damit nur TLS-verschlüsselte Verbindungen zulasst, die mindestens TLS-1.2-kompatible Cipher-Suiten voraussetzen – gleichzeitig allerdings riskiert, dass zu diversen Webseiten dann keine TLS-verschlüsselte Verbindung mehr aufgebaut werden kann, da die Gegenstelle TLS 1.2 und höher noch nicht unterstützt.
  • […]

Diese Entscheidungen kann euch kein HowTo dieser Welt abnehmen – es liegt nämlich ganz bei euch, das individuell für euch selbst zu entscheiden.

Allerdings müsst ihr das Rad nicht neu erfinden, denn die bereits vorgestellten user.js-Vorlagen vom Privacy-Handbuch oder ghacks bieten euch einen guten Einstiegspunkt in die Welt der about:config-Parameter. Mein Rat lautet:

Entscheidet euch für eine Vorlage und passt diese dann an eure Bedürfnisse an.

Abgesehen von der enormen Aufwandsminimierung, die eine user.js-Vorlage mit sich bringt, solltet ihr auch stets im Hinterkopf behalten, dass Mozilla mit nahezu jeder neuen Firefox-Version neue Funktionalitäten integriert. Das hat oftmals zur Folge, dass neue about:config-Parameter hinzukommen, die im Sinne einer sicheren und datenschutzfreundlichen Konfiguration angepasst werden müssen. Das macht es von eurer Seite natürlich erforderlich, eure user.js stets zu pflegen bzw. aktuell zu halten.

4.1 Meine Empfehlung: ghacks-user.js

Aufgrund meiner persönlichen Erfahrung lege ich euch die ghacks-user.js-Vorlage ans Herz. Dieses insbesondere deshalb, weil die user.js vorbildlich dokumentiert und mit zahlreichen Kommentaren versehen ist. Dies erleichtert es ungemein, den Durchblick zu behalten und die Parameter an die eigenen Bedürfnisse anzupassen. Insgesamt harmoniert die user.js-Vorlage hervorragend mit den vorgestellten Add-ons des Firefox-Kompendiums, wenngleich die Vorlage relativ restriktiv ist und ihr nicht umhinkommen werdet, einige Parameter anzupassen.

Doch bevor ihr Änderungen vornehmt, solltet ihr in eurem Profil-Verzeichnis zunächst eine Datei mit dem Namen user-overrides.js anlegen. Sobald ihr dann einen Parameter in der user.js-Vorlage anpasst, übertragt ihr diesen zusätzlich in die user-overrides.js.

Beispiel: Ihr wollt den Parameter browser.display.use_document_fonts auf »1« setzen, damit die Darstellung von serverseitig zur Verfügung gestellten Schriften (Fonts) grundsätzlich möglich ist bzw. über uBlock Origin gesteuert werden kann:

  • Zunächst sucht ihr in der user.js-Vorlage nach dem Parameter browser.display.use_document_fonts und setzt ihn auf den Wert »1«
  • Anschließend kopiert ihr die ganze Zeile in die bereits angelegte user-overrides.js, ergänzt einen Kommentar und speichert beide Dateien danach ab:
    /* Override 1401: disable websites choosing fonts (0=block, 1=allow) */
    user_pref("browser.display.use_document_fonts", 1);

Die user-overrides.js beinhaltet also alle Abweichungen von der original zur Verfügung gestellten ghacks-user.js-Vorlage. Weshalb wir diese Datei anlegen und pflegen erkläre ich euch im nachfolgenden Unterpunkt.

4.2 user.js aktuell halten

Mozilla hat leider die schlechte Angewohnheit, neue Funktionen zu ergänzen, die insbesondere bei datenschutzsensiblen Nutzern auf Kritik stoßen. Es ist daher unerlässlich, dass ihr eure ghacks-user.js stets auf aktuellem Stand haltet. Das Projekt bietet für die Betriebssysteme GNU/Linux, macOS und Windows ein entsprechendes Update-Skript an:

  • GNU/Linux | macOS: Besucht die GitHub-Projekteseite und ladet euch das updater.sh-Skript herunter. Dieses Skript platziert ihr anschließend in eurem Profil-Verzeichnis und könnt es ohne weitere Parameter einfach ausführen. Falls ihr spezielle Anforderungen habt, könnt ihr dem Skript diverse Parameter übergeben, die ihr dem Wiki entnehmen könnt.
  • Windows: Unter Windows ist der Vorgang ähnlich – allerdings bezieht ihr dort die updater.bat-Datei, kopiert sie in euer Profil-Verzeichnis und führt sie anschließend aus.

Bei einem Update sollten eure Anpassungen natürlich nicht verloren gehen, weshalb ihr in weiser Voraussicht eine user-overrides.js angelegt habt, die alle Abweichungen vom Auslieferungszustand beinhaltet. Bei einem Update über das Skript bzw. die Batch-Datei wird diese dann berücksichtigt:

user-overrides.js

Am Status in der letzten Zeile könnt ihr erkennen, dass die user-overrides.js beim Update berücksichtigt wurde.

Der Kuketz-Blog ist spendenfinanziert!

Unabhängig. Kritisch. Informativ. Praxisnah. Verständlich.

Die Arbeit von kuketz-blog.de wird vollständig durch Spenden unserer Leserschaft finanziert. Sei Teil unserer Community und unterstütze unsere Arbeit mit einer Spende.

Mitmachen ➡

4.3 Blick ins Wiki

Auf der GitHub-Seite des Projekts ist ein Wiki integriert, in dem diverse Fragen und Spezialfälle behandelt werden. Unter anderem geht das Wiki auf das Zurücksetzen von inaktiven Firefox-Parametern ein, die bspw. veraltet sind oder einfach entfernt wurden. Damit diese Altlasten nicht ständig mitgeschleppt werden, wird der prefsCleaner für Windows bzw. GNU/Linux / macOS angeboten.

Wer sich also mit den Feinheiten einer user.js befassen möchte, der sollte unbedingt einen Blick ins Wiki werfen.

5. Fazit

Firefox ist aktuell der beste Browser, den wir haben. Kein anderer Browser lässt sich derart datenschutzfreundlich betreiben wie der Browser von Mozilla. Leider opfert Mozilla den Datenschutz zunehmend auf dem Altar der Benutzerfreundlichkeit, aus Angst, Marktanteile zu verlieren – aus meiner Sicht ist das der falsche Weg und wird langfristig zu sinkenden Anteilen führen. Zum Glück haben wir die Möglichkeit, unsere strikten Anforderungen an Datenschutz und Sicherheit über eine angepasste user.js zu verwirklichen. So lange uns Mozilla dieses Türchen offen hält, bleibt Firefox die erste Wahl auf dem Browsermarkt.

Rückblickend ziehe ich eine äußerst positive Bilanz und glaube euch einen praktikablen Weg aufgezeigt zu haben, der es euch ermöglicht, eure Sicherheit und Privatsphäre beim Surfen im Internet bestmöglich zu schützen. Nach diesem letzten Beitrag der Artikelserie seid ihr mit dem entsprechenden Rüstzeug ausgestattet, mit dem ihr auch den zukünftigen Auswüchsen des Bullshit-Webs souverän entgegenwirken könnt.

Über den Autor | Kuketz

Mike Kuketz

In meiner freiberuflichen Tätigkeit als Pentester / Sicherheitsforscher (Kuketz IT-Security) schlüpfe ich in die Rolle eines »Hackers« und suche nach Schwachstellen in IT-Systemen, Webanwendungen und Apps (Android, iOS). Des Weiteren bin ich Lehrbeauftragter für IT-Sicherheit an der Dualen Hochschule Karlsruhe, sensibilisiere Menschen in Workshops und Schulungen für Sicherheit und Datenschutz und bin unter anderem auch als Autor für die Computerzeitschrift c’t tätig.

Der Kuketz-Blog bzw. meine Person ist regelmäßig in den Medien (heise online, Spiegel Online, Süddeutsche Zeitung etc.) präsent.

Mehr Erfahren ➡

SpendeUnterstützen

Die Arbeit von kuketz-blog.de wird zu 100% durch Spenden unserer Leserinnen und Leser finanziert. Werde Teil dieser Community und unterstütze auch du unsere Arbeit mit deiner Spende.

Folge dem Blog

Wenn du über aktuelle Beiträge informiert werden möchtest, hast du verschiedene Möglichkeiten, dem Blog zu folgen:

Bleib aktuell ➡


Diskussion

24 Ergänzungen zu “Firefox: about:config | user.js – Firefox-Kompendium Teil10”

  1. Comment Avatar savant sagt:

    „security.tls.version.min auf den Wert »3« setzt und damit nur TLS-verschlüsselte Verbindungen zulasst, die mindestens TLS 1.2 kompatible Cipher-Suiten voraussetzen“

    Das ist etwas ungünstig formuliert, da man es auch so verstehen könnte, dass man unverschlüsselte Seiten überhaupt nicht mehr aufrufen kann. Ferner würde ich den Wert nicht auf 3 setzen, da man sonst diverse, eigentlich sichere Seiten, nicht mehr aufrufen kann. Stattdessen würde ich unsichere Cipher-Suiten deaktivieren (im Firefox sind das 3!).

    Und zwar:
    security.ssl3.rsa_des_ede3_sha
    security.ssl3.rsa_aes_256_sha
    security.ssl3.rsa_aes_128_sha

    Das sind auch die, die Qualys SSL Labs als WEAK einstuft (Firefox 63).

    Ich frage mich auch auf welche Empfehlungen du dich bei dem Wert beziehst.

    • Comment Avatar Mike Kuketz sagt:

      Ich beziehe mich auf gar keine Empfehlung, das war lediglich ein Beispiel. ;-)

      • Comment Avatar savant sagt:

        Was ist eigentlich, wenn man Werte in der user.js deaktivieren soll, die nicht unter about:config auftauchen? Ist das dann überflüssig oder muss man den Wert erst anlegen?

        Bei mir fehlt zum Beispiel: „shield.savant.enabled“

        • Comment Avatar Kajo sagt:

          Mir fehlt der Eintrag auch. Ich nutze jedoch Firefox ESR 60.3.0, während Mike die Version 63.x für den Artikel nutzt. Vielleicht deshalb?

        • Comment Avatar Mike Kuketz sagt:

          Je nach Firefox-Version sind Parameter vorhanden oder nicht. Es lässt sich teilweise auch nicht ausschließen, dass Parameter in der user.js enthalten sind, die man selbst für seine Firefox-Version gar nicht benötigt. Das ist allerdings reine Kosmetik.

  2. Comment Avatar Pierre91 sagt:

    Sollte jemand mit unterschiedlichen user.js Versionen experimentieren, besteht die Möglichkeit diese mithilfe eines kleinen Tools mit relativ wenig Aufwand zu vergleichen.
    Die Projektseite ist unter Compare-UserJS zu finden.

  3. Comment Avatar stillerLeser sagt:

    Danke fuer die aktuelle Uebersicht (auch an die Kommentierenden). Ich pflege schon laenger eine user.js innerhalb sonstiger dotfiles. Es ist halt schade, dass man immer wieder nachjustieren muss, das ist schon relativ viel Aufwand. Da bleibt ja fast nichts, als sich auf die user.js-Projekte zu verlassen.

    @savant: teilweise muss man Schluessel tatsaechlich erst anlegen. Unter about:support sollte man ueberpruefen koennen, obs geklappt hat. Manche Einstellungen sind aber auch plattformabhaengig oder fliegen aber auch einfach bei einem Update raus und sind faelschlicherweise noch in Community-gepflegten user.js drin.

  4. Comment Avatar Armleuchter sagt:

    Funktioniert das so (oder so ähnlich) auch unter Android mit fennec?

    • Comment Avatar Mike Kuketz sagt:

      So ähnlich, ja. Die Artikelserie richtet sich allerdings an den Desktop-Browser Firefox Quantum.

      • Comment Avatar Jan sagt:

        Das „Ähnlich“ ist weit gefasst. Wer ein (manchmal mit gutem Grund) ungerootetes Gerät nutzt, der kommt an die Steuerdateien von Fennec (mit Bordmitteln) gar nicht dran.
        Ich habe die oben gelistete Datei user.js als Vorbild genommen und Schritt für Schritt mit about:config nachgearbeitet. Das ist ohne richtige Tastatur mega lästig – aber ein sicherer Weg. Für Tipps wie man dem „Fennec“ besser Beine macht wären sicher einige Android Nutzer dankbar.
        Immerhin war in der Version aus F-Droid 63.0.2 nur eine gesprächige Erweiterung installiert. Aus dem Mozilla Download bei Linux sind das gleich mal 5….
        Jan

  5. Comment Avatar Theo sagt:

    Ich habe die Users.js von ghacks geladen. Leider wird die Funktion deaktiviert, dass ich direkt in der Adressleiste die Suchbegriffe eingeben kann und gleich das Suchergebnis auf einer Seite dargestellt bekomme. Ich habe etwas experimentiert, finde aber die Einstellung nicht. Kann mir jemand helfen?

    Lösung:
    unter 0801
    user_pref(„keyword.enabled“, true)

  6. Comment Avatar John Leontop sagt:

    Habe about:config bei mir implementiert; dies fuehrt bei mir zuhause zu erheblichem Streitpotential, weil tatsaechlich viele Webseiten nicht mehr sauber funktionieren; insbesondere das eine oder andere Bankkonto; zusaetzlich bin ich leider kein Experte und kann im Zweifelsfall keine Loesung finden; bei einigen Webseiten, fuer deren Nutzung ich bezahle, kann ich mich nicht mehr einloggen

  7. Comment Avatar Ole sagt:

    Vielen, vielen Dank für die ausführlichen und detaillierten Beschreibungen zum Firefox. Gerade bei den Addons entdeckte ich bei mir noch Verbesserungspotential. Den letzten Teil über die user.js fand ich extrem interessant, endete allerdings in einer Neuinstallation und kompletten Neueinrichtung. Aber wahrscheinlich hätte mich eine deutlichere Warnung – nur für geduldige, leidensfähige Nutzer zu empfehlen – auch nicht davon abgehalten ;-)

    Gewundert hat mich die Nichtbehebung zweier Spionage Eigenschaften: Pocket, wozu man an mehreren Stellen eingreifen muss und die Übermittlung aller Screenshots an Mozilla, was sich nur in der about:config abstellen lässt (extensions.screenshots.* 2 Punkte; man achte auf die irreführende doppelte Negierung, was nur macht, wer unlautere Absichten hegt).

    Des weiteren hoffe ich insgeheim, dass die Serie fortgesetzt/erweitert wird, weil die Aussichten für sicherheitsbewusste Nutzer eher düster sind. Mit Version 64 wird das Nutzerverhalten tiefgreifend analysiert und „Verbesserungen“ vorgeschlagen. Unabhängig davon, dass ich einen dicken Hals bekomme, wenn mir fremde Leute sagen wollen, wie ich nach deren Vorstellungen zu arbeiten habe, findet dieser Prozess angeblich nur lokal statt, aber ich trau denen nicht weiter, als ich spucken kann.

    Wenn zukünftig aller Traffic und jede eingegebene Information über Cloudfare geleitet wird, was natürlich nur zu unserem Besten ist, niemand hintenherum Daten abfischt und das die EINZIGE Möglichkeit/Alternative ist, um unsere Sicherheit zu gewährleisten – die wir doch schließlich unbedingt wollen – und sich nicht abstellen/verhindern lässt, bin ich auf die Reaktionen aus den Sicherheitskreisen gespannt. Cloudfare, NSA & Co. reiben sich bestimmt schon die Hände. Wie viel Geld Mozilla wohl für diese Gefälligkeiten einstreicht und dabei riskiert in der Nutzergunst weiter Boden zu verlieren?

    In diesem Zusammenhang verstehe ich nicht ganz die Ablehnung von Chromium. Daran sind so viele renommierte Unternehmen und Einzelentwickler beteiligt, wenn da irgendetwas suspektes im Code wäre, dürfte die Öffentlichkeit davon schneller erfahren, als eine Maus sich verkrochen hat. Nein, ich traue Google nicht über den Weg und unternehme vieles, um den Moloch fern zuhalten, aber wenn sich jetzt sogar Microsoft für den Chromium Unterbau entschieden hat und daran mitentwickeln, werden die kaum zulassen, dass Google irgendwelche Daten erhält – na gut, oder sie vorher aus dem Code entfernen, wenn es denn da ist.

    Mit dem, was Firefox demnächst einführt, halte ich Chromium für das kleinere Übel ;-)

    Der langen Serie möchte ich mit ausführlichen Gedanken meinen Respekt zollen und habe hoffentlich niemandes Geduld übermäßig strapaziert ;-)

    • Comment Avatar savant sagt:

      „Mit Version 64 wird das Nutzerverhalten tiefgreifend analysiert und „Verbesserungen“ vorgeschlagen.“

      Das „Feature“ gilt momentan nur für US Nutzer.

      „Better recommendations: You may see suggestions in regular browsing mode for new and relevant Firefox features, services, and extensions based on how you use the web (for US users only)

      Quelle: Firefox 64.0, See All New Features, Updates and Fixes

      Pocket und co. lassen sich auch entfernen indem man die Erweiterungen aus dem Profilverzeichnis löscht. Dazu about:support aufrufen und den Ordner öffnen.

      • Comment Avatar Ole sagt:

        Firefox 64 kam gerade frisch rein. Ein kurzer Blick in die Einstellungen – Ohh, es gibt einen neuen Eintrag: Erweiterungen während des Surfens empfehlen – der natürlich standardmäßig aktiviert ist.

        Aber Nein, es wird bestimmt nicht das Nutzerverhalten dazu analysiert … ganz sicher nicht.

        Ach, hatte ich erwähnt, dass ich mich nicht in den USA befinde?

  8. Comment Avatar gui sagt:

    Danke Mike für den prima Einstig. Wenn man schnell ans Ziel kommen möchte, kann man deinen empfohlenen user.js z.B. von Privacy Handbuch auch erstmal „blind“ vertrauen?

    • Comment Avatar Mike Kuketz sagt:

      Nein, man kann den user.js nicht »blind« vertrauen. Das habe ich im Text auch dargelegt. Wenn etwas nicht funktioniert wie gewünscht musst du eben die user.js an deine Bedürfnisse anpassen.

  9. Comment Avatar Anonymous sagt:

    Vielen Dank für die tolle Artikelserie!
    Einträge aus der user.js werden ja in die prefs.js übernommen. Auch wenn die ghacks-user.js aktualisiert wurde und veraltete/nicht mehr unterstützte Einträge nur noch auskommentiert unter der [SECTION 9999] aufgeführt werden, stehen diese Einträge doch weiterhin in der prefs.js.

    Wie sieht es mit veralteten Einträgen aus, die Firefox nicht mehr unterstützt? Muss ich diese manuell über about:config löschen/zurücksetzen?

    • Comment Avatar Mike Kuketz sagt:

      Die alten Einträge tun erstmal »nicht weh«. Das sind im Grunde nur Überbleibsel, die keine Funktion mehr haben. Aus kosemtischen Gründen könntest du sie händisch entfernen oder von Zeit zu Zeit einfach ein neues Profil anlegen.

  10. Comment Avatar 5lin sagt:

    Danke für die hilfreichen Beiträge das ist
    Wirklich Top ich lege generell optional immer verschiedene Profile an und passe jedes einzelne meinen Bedürfnissen an wenn es grundsätzlich nur ums surfen geht bin ich da grundsätzlich für strikt eingestellt.

    Für die jenigen die es noch nicht wissen wie man mehrere Profile anlegt zeige ich ein kurzes Beispiel dazu unter Windows „ausführen“ Firefox.exe -P no-remote“

    Danke an Mike für die tollen und hilfreichen Beiträge die du immer schreibst mach weiter so LG Nils

  11. Comment Avatar Jose sagt:

    Angerissen wurde das Thema Fennic Android oben.

    Abtippen ist für mich keine Lösung.
    Von mir aus mit etwas Aufwand über ADB ?
    Gibt es nun einen Weg die User.js und Profil zu bekommen oder nicht ?

    Gruß
    Jose

  12. Comment Avatar Will sagt:

    Welche Einstellung muss man deaktivieren damit die Einstellungen von FF nicht auf Englisch sind ?

    Finde die Einstellung dazu in der ghacks user.js nicht

    Danke

HilfeWenn du konkrete Fragen hast oder Hilfe benötigst, sind das offizielle Forum oder der Chat geeignete Anlaufstellen, um dein Anliegen zu diskutieren. Per E-Mail beantworte ich grundsätzlich keine (Support-)Anfragen – dazu fehlt mir einfach die Zeit. Kuketz-Forum

Abschließender Hinweis

Blog-Beiträge erheben nicht den Anspruch auf ständige Aktualität und Richtigkeit wie Lexikoneinträge (z.B. Wikipedia), sondern beziehen sich wie Zeitungsartikel auf den Informationsstand zum Zeitpunkt des Redaktionsschlusses.

Kritik, Anregungen oder Korrekturvorschläge zu den Beiträgen nehme ich gerne per E-Mail entgegen.