2017-06-17 09:13:14 +02:00
/ * * * * * *
* name : ghacks user . js
2018-11-13 15:12:20 +00:00
* date : 13 November 2018
* version 63 - beta : Pants Romance
2018-10-11 11:25:03 +00:00
* "Rah rah ah-ah-ah! Ro mah ro-mah-mah. Gaga oh-la-la! Want your pants romance"
2017-06-17 09:13:14 +02:00
* authors : v52 + github | v51 - www . ghacks . net
* url : https : //github.com/ghacksuserjs/ghacks-user.js
2018-01-02 13:30:59 +13:00
* license : MIT : https : //github.com/ghacksuserjs/ghacks-user.js/blob/master/LICENSE.txt
2017-06-17 09:13:14 +02:00
* releases : These are end - of - stable - life - cycle legacy archives .
* Always * use the master branch user . js for a current up - to - date version .
url : https : //github.com/ghacksuserjs/ghacks-user.js/releases
* README :
1. READ the full README
* https : //github.com/ghacksuserjs/ghacks-user.js/blob/master/README.md
2. READ this
* https : //github.com/ghacksuserjs/ghacks-user.js/wiki/1.3-Implementation
3. If you skipped steps 1 and 2 above ( shame on you ) , then here is the absolute minimum
2017-09-09 16:18:16 +12:00
* Auto - installing updates for Firefox and extensions are disabled ( section 0302 ' s )
2018-08-15 05:56:40 +00:00
* Some user data is erased on close ( section 2800 ) . Change this to suit your needs
2017-09-17 22:29:05 +12:00
* EACH RELEASE check :
- 4600 s : reset prefs made redundant due to privacy . resistFingerprinting ( RPF )
or enable them as an alternative to RFP or for ESR users
- 9999 s : reset deprecated prefs in about : config or enable relevant section ( s ) for ESR
2017-06-17 09:13:14 +02:00
* Site breakage WILL happen
- There are often trade - offs and conflicts between Security vs Privacy vs Anti - Fingerprinting
and these need to be balanced against Functionality & Convenience & Breakage
* You will need to make a few changes to suit your own needs
- Search this file for the "[SETUP]" tag to find SOME common items you could check
before using to avoid unexpected surprises
- Search this file for the "[WARNING]" tag to troubleshoot or prevent SOME common issues
2017-07-15 19:37:27 +12:00
4. BACKUP your profile folder before implementing ( and / or test in a new / c l o n e d p r o f i l e )
2017-12-09 07:51:35 +13:00
5. KEEP UP TO DATE : https : //github.com/ghacksuserjs/ghacks-user.js/wiki#small_orange_diamond-maintenance
2017-06-17 09:13:14 +02:00
2018-08-28 07:57:21 +00:00
* * * * * * /
2017-06-17 09:13:14 +02:00
2018-07-11 13:59:52 +02:00
/ * S T A R T : i n t e r n a l c u s t o m p r e f t o t e s t f o r s y n t a x e r r o r s
2018-05-15 15:44:37 +00:00
* [ NOTE ] In FF60 + , not all syntax errors cause parsing to abort i . e . reaching the last debug
* pref no longer necessarily means that all prefs have been applied . Check the console right
* after startup for any warnings / error messages related to non - applied prefs
* [ 1 ] https : //blog.mozilla.org/nnethercote/2018/03/09/a-new-preferences-parser-for-firefox/ ***/
2017-09-16 10:28:22 +12:00
user _pref ( "_user.js.parrot" , "START: Oh yes, the Norwegian Blue... what's wrong with it?" ) ;
2018-01-29 14:05:13 +01:00
2018-01-15 05:32:51 +13:00
/* 0000: disable about:config warning ***/
user _pref ( "general.warnOnAboutConfig" , false ) ;
2017-06-17 09:13:14 +02:00
/ * 0 0 0 1 : s t a r t F i r e f o x i n P B ( P r i v a t e B r o w s i n g ) m o d e
2018-03-27 08:49:39 +13:00
* [ SETTING ] Privacy & Security > History > Custom Settings > Always use private browsing mode
2017-06-17 09:13:14 +02:00
* [ NOTE ] In this mode * all * windows are "private windows" and the PB mode icon is not displayed
* [ NOTE ] The P in PB mode is misleading : it means no "persistent" local storage of history ,
* caches , searches or cookies ( which you can achieve in normal mode ) . In fact , it limits or
* removes the ability to control these , and you need to quit Firefox to clear them . PB is best
* used as a one off window ( File > New Private Window ) to provide a temporary self - contained
* new instance . Closing all Private Windows clears all traces . Repeat as required .
2017-09-27 12:38:02 +13:00
* [ WARNING ] PB does not allow indexedDB which breaks many Extensions that use it
* including uBlock Origin , uMatrix , Violentmonkey and Stylus
2017-06-17 09:13:14 +02:00
* [ 1 ] https : //wiki.mozilla.org/Private_Browsing ***/
// user_pref("browser.privatebrowsing.autostart", true);
/*** 0100: STARTUP ***/
2017-09-16 10:28:22 +12:00
user _pref ( "_user.js.parrot" , "0100 syntax error: the parrot's dead!" ) ;
2018-05-29 16:09:02 +00:00
/ * 0 1 0 1 : d i s a b l e d e f a u l t b r o w s e r c h e c k
* [ SETTING ] General > Startup > Always check if Firefox is your default browser * * * /
2017-06-17 09:13:14 +02:00
user _pref ( "browser.shell.checkDefaultBrowser" , false ) ;
2018-07-05 15:32:19 +00:00
/ * 0 1 0 2 : s e t S T A R T p a g e ( 0 = b l a n k , 1 = h o m e , 2 = l a s t v i s i t e d p a g e , 3 = r e s u m e p r e v i o u s s e s s i o n )
2018-03-27 08:49:39 +13:00
* [ SETTING ] General > Startup > When Firefox starts * * * /
2018-07-05 15:32:19 +00:00
user _pref ( "browser.startup.page" , 0 ) ;
/ * 0 1 0 3 : s e t H O M E + N E W W I N D O W p a g e
* about : home = Activity Stream ( default , see 0514 ) , custom URL , about : blank
* [ SETTING ] Home > New Windows and Tabs > Homepage and new windows * * * /
user _pref ( "browser.startup.homepage" , "about:blank" ) ;
/ * 0 1 0 4 : s e t N E W T A B p a g e
* true = Activity Stream ( default , see 0514 ) , false = blank page
* [ SETTING ] Home > New Windows and Tabs > New tabs * * * /
user _pref ( "browser.newtabpage.enabled" , false ) ;
user _pref ( "browser.newtab.preload" , false ) ;
2017-06-17 09:13:14 +02:00
/*** 0200: GEOLOCATION ***/
2017-09-16 10:28:22 +12:00
user _pref ( "_user.js.parrot" , "0200 syntax error: the parrot's definitely deceased!" ) ;
2018-03-01 12:26:10 +00:00
/ * 0 2 0 1 : d i s a b l e L o c a t i o n - A w a r e B r o w s i n g
* [ 1 ] https : //www.mozilla.org/firefox/geolocation/ ***/
2018-05-06 13:10:30 +00:00
// user_pref("geo.enabled", false);
/ * 0 2 0 1 b : s e t a d e f a u l t p e r m i s s i o n f o r L o c a t i o n ( F F 5 8 + )
* [ SETTING ] to add site exceptions : Page Info > Permissions > Access Your Location
2018-05-16 18:31:28 +02:00
* [ SETTING ] to manage site exceptions : Options > Privacy & Security > Permissions > Location > Settings * * * /
2018-05-06 13:10:30 +00:00
user _pref ( "permissions.default.geo" , 2 ) ; // 0=always ask (default), 1=allow, 2=block
2017-06-17 09:13:14 +02:00
/ * 0 2 0 2 : d i s a b l e G e o I P - b a s e d s e a r c h r e s u l t s
* [ NOTE ] May not be hidden if Firefox has changed your settings due to your locale
2017-10-03 17:37:50 +02:00
* [ 1 ] https : //trac.torproject.org/projects/tor/ticket/16254
* [ 2 ] https : //support.mozilla.org/en-US/kb/how-stop-firefox-making-automatic-connections#w_geolocation-for-default-search-engine ***/
2017-06-17 09:13:14 +02:00
user _pref ( "browser.search.region" , "US" ) ; // (hidden pref)
2017-10-03 17:37:50 +02:00
user _pref ( "browser.search.geoip.url" , "" ) ;
2018-03-13 18:56:22 +00:00
/ * 0 2 0 5 : s e t O S & A P P l o c a l e ( F F 5 9 + )
2018-01-22 18:49:39 +13:00
* If set to empty , the OS locales are used . If not set at all , default locale is used * * * /
user _pref ( "intl.locale.requested" , "en-US" ) ; // (hidden pref)
2017-07-24 06:50:55 +12:00
/ * 0 2 0 6 : d i s a b l e g e o g r a p h i c a l l y s p e c i f i c r e s u l t s / s e a r c h e n g i n e s e . g . " b r o w s e r . s e a r c h . * . U S "
2017-07-25 05:15:37 +12:00
* i . e . ignore all of Mozilla ' s various search engines in multiple locales * * * /
2017-06-17 09:13:14 +02:00
user _pref ( "browser.search.geoSpecificDefaults" , false ) ;
user _pref ( "browser.search.geoSpecificDefaults.url" , "" ) ;
/* 0207: set language to match ***/
user _pref ( "intl.accept_languages" , "en-US, en" ) ;
/ * 0 2 0 8 : e n f o r c e U S E n g l i s h l o c a l e r e g a r d l e s s o f t h e s y s t e m l o c a l e
2018-03-15 02:22:58 +13:00
* [ 1 ] https : //bugzilla.mozilla.org/867501 ***/
2017-06-17 09:13:14 +02:00
user _pref ( "javascript.use_us_english_locale" , true ) ; // (hidden pref)
2017-09-18 02:38:09 +12:00
/ * 0 2 0 9 : u s e A P P l o c a l e o v e r O S l o c a l e i n r e g i o n a l p r e f e r e n c e s ( F F 5 6 + )
2018-03-15 02:22:58 +13:00
* [ 1 ] https : //bugzilla.mozilla.org/buglist.cgi?bug_id=1379420,1364789 ***/
2017-09-20 03:23:10 +12:00
user _pref ( "intl.regional_prefs.use_os_locales" , false ) ;
2017-10-04 07:53:12 +13:00
/ * 0 2 1 0 : u s e M o z i l l a g e o l o c a t i o n s e r v i c e i n s t e a d o f G o o g l e w h e n g e o l o c a t i o n i s e n a b l e d
2017-10-03 17:37:50 +02:00
* Optionally enable logging to the console ( defaults to false ) * * * /
user _pref ( "geo.wifi.uri" , "https://location.services.mozilla.com/v1/geolocate?key=%MOZILLA_API_KEY%" ) ;
// user_pref("geo.wifi.logging.enabled", true); // (hidden pref)
2017-06-17 09:13:14 +02:00
/ * * * 0 3 0 0 : Q U I E T F O X
We choose to not disable auto - CHECKs ( 0301 's) but to disable auto-INSTALLs (0302' s ) .
There are many legitimate reasons to turn off auto - INSTALLS , including hijacked or
monetized extensions , time constraints , legacy issues , and fear of breakage / bugs .
It is still important to do updates for security reasons , please do so manually . * * * /
2017-09-16 10:28:22 +12:00
user _pref ( "_user.js.parrot" , "0300 syntax error: the parrot's not pinin' for the fjords!" ) ;
2017-10-02 09:32:27 +13:00
/ * 0 3 0 1 b : d i s a b l e a u t o - u p d a t e c h e c k s f o r e x t e n s i o n s
* [ SETTING ] about : addons > Extensions > [ cog - wheel - icon ] > Update Add - ons Automatically ( toggle ) * * * /
2017-06-17 09:13:14 +02:00
// user_pref("extensions.update.enabled", false);
2018-10-23 15:45:31 +00:00
/ * 0 3 0 2 a : d i s a b l e a u t o u p d a t e i n s t a l l i n g f o r F i r e f o x
* [ SETTING ] General > Firefox Updates > Check for updates but let you choose ... * * * /
2017-06-17 09:13:14 +02:00
user _pref ( "app.update.auto" , false ) ;
2017-09-09 16:18:16 +12:00
/ * 0 3 0 2 b : d i s a b l e a u t o u p d a t e i n s t a l l i n g f o r e x t e n s i o n s ( a f t e r t h e c h e c k i n 0 3 0 1 b )
2017-10-02 09:32:27 +13:00
* [ SETTING ] about : addons > Extensions > [ cog - wheel - icon ] > Update Add - ons Automatically ( toggle ) * * * /
2017-06-17 09:13:14 +02:00
user _pref ( "extensions.update.autoUpdateDefault" , false ) ;
/ * 0 3 0 3 : d i s a b l e b a c k g r o u n d u p d a t e s e r v i c e [ W I N D O W S ]
2018-08-09 03:30:57 +00:00
* [ SETTING ] General > Firefox Updates > Use a background service to install updates * * * /
2017-06-17 09:13:14 +02:00
user _pref ( "app.update.service.enabled" , false ) ;
/* 0304: disable background update staging ***/
user _pref ( "app.update.staging.enabled" , false ) ;
/ * 0 3 0 5 : e n f o r c e u p d a t e i n f o r m a t i o n i s d i s p l a y e d
* This is the update available , downloaded , error and success information * * * /
user _pref ( "app.update.silent" , false ) ;
2017-09-09 16:18:16 +12:00
/ * 0 3 0 6 : d i s a b l e e x t e n s i o n m e t a d a t a u p d a t i n g
2017-06-17 09:13:14 +02:00
* sends daily pings to Mozilla about extensions and recent startups * * * /
user _pref ( "extensions.getAddons.cache.enabled" , false ) ;
/* 0307: disable auto updating of personas (themes) ***/
user _pref ( "lightweightThemes.update.enabled" , false ) ;
/ * 0 3 0 8 : d i s a b l e s e a r c h u p d a t e
2018-08-09 03:30:57 +00:00
* [ SETTING ] General > Firefox Update > Automatically update search engines * * * /
2017-06-17 09:13:14 +02:00
user _pref ( "browser.search.update" , false ) ;
/* 0309: disable sending Flash crash reports ***/
user _pref ( "dom.ipc.plugins.flash.subprocess.crashreporter.enabled" , false ) ;
/* 0310: disable sending the URL of the website where a plugin crashed ***/
user _pref ( "dom.ipc.plugins.reportCrashURL" , false ) ;
2017-09-15 01:47:54 +02:00
/* 0320: disable about:addons' Get Add-ons panel (uses Google-Analytics) ***/
user _pref ( "extensions.getAddons.showPane" , false ) ; // hidden pref
user _pref ( "extensions.webservice.discoverURL" , "" ) ;
2017-06-17 09:13:14 +02:00
/ * 0 3 3 0 : d i s a b l e t e l e m e t r y
* the pref ( . unified ) affects the behaviour of the pref ( . enabled )
* IF unified = false then . enabled controls the telemetry module
* IF unified = true then . enabled ONLY controls whether to record extended data
* so make sure to have both set as false
2017-11-15 13:51:20 +13:00
* [ NOTE ] FF58 + ` toolkit.telemetry.enabled ` is now LOCKED to reflect prerelease
* or release builds ( true and false respectively ) , see [ 2 ]
* [ 1 ] https : //firefox-source-docs.mozilla.org/toolkit/components/telemetry/telemetry/internals/preferences.html
* [ 2 ] https : //medium.com/georg-fritzsche/data-preference-changes-in-firefox-58-2d5df9c428b5 ***/
2017-06-17 09:13:14 +02:00
user _pref ( "toolkit.telemetry.unified" , false ) ;
2017-11-15 13:51:20 +13:00
user _pref ( "toolkit.telemetry.enabled" , false ) ; // see [NOTE] above FF58+
2018-02-24 10:54:16 +00:00
user _pref ( "toolkit.telemetry.server" , "data:," ) ;
2017-06-17 09:13:14 +02:00
user _pref ( "toolkit.telemetry.archive.enabled" , false ) ;
2017-07-25 06:43:12 +12:00
user _pref ( "toolkit.telemetry.cachedClientID" , "" ) ;
user _pref ( "toolkit.telemetry.newProfilePing.enabled" , false ) ; // (FF55+)
user _pref ( "toolkit.telemetry.shutdownPingSender.enabled" , false ) ; // (FF55+)
2017-09-10 01:43:02 +12:00
user _pref ( "toolkit.telemetry.updatePing.enabled" , false ) ; // (FF56+)
2017-11-09 03:13:42 +13:00
user _pref ( "toolkit.telemetry.bhrPing.enabled" , false ) ; // (FF57+) Background Hang Reporter
user _pref ( "toolkit.telemetry.firstShutdownPing.enabled" , false ) ; // (FF57+)
2018-03-14 15:08:33 +00:00
user _pref ( "toolkit.telemetry.hybridContent.enabled" , false ) ; // (FF59+)
2018-03-20 05:42:05 +00:00
/ * 0 3 3 3 : d i s a b l e h e a l t h r e p o r t
2018-03-27 08:49:39 +13:00
* [ SETTING ] Privacy & Security > Firefox Data Collection & Use > Allow Firefox to send technical ... data * * * /
2017-06-17 09:13:14 +02:00
user _pref ( "datareporting.healthreport.uploadEnabled" , false ) ;
/ * 0 3 3 4 : d i s a b l e n e w d a t a s u b m i s s i o n , m a s t e r k i l l s w i t c h ( F F 4 1 + )
* If disabled , no policy is shown or upload takes place , ever
2018-03-15 02:22:58 +13:00
* [ 1 ] https : //bugzilla.mozilla.org/1195552 ***/
2017-06-17 09:13:14 +02:00
user _pref ( "datareporting.policy.dataSubmissionEnabled" , false ) ;
/* 0350: disable crash reports ***/
user _pref ( "breakpad.reportURL" , "" ) ;
2018-03-20 05:47:04 +00:00
/ * 0 3 5 1 : d i s a b l e s e n d i n g o f c r a s h r e p o r t s ( F F 4 4 + )
2018-03-27 08:49:39 +13:00
* [ SETTING ] Privacy & Security > Firefox Data Collection & Use > Allow Firefox to send crash reports * * * /
2017-06-17 09:13:14 +02:00
user _pref ( "browser.tabs.crashReporting.sendReport" , false ) ;
user _pref ( "browser.crashReports.unsubmittedCheck.enabled" , false ) ; // (FF51+)
2018-01-22 10:13:28 +13:00
user _pref ( "browser.crashReports.unsubmittedCheck.autoSubmit" , false ) ; // (FF51-57)
user _pref ( "browser.crashReports.unsubmittedCheck.autoSubmit2" , false ) ; // (FF58+)
2017-06-17 09:13:14 +02:00
/ * 0 3 7 0 : d i s a b l e " S n i p p e t s " ( M o z i l l a c o n t e n t s h o w n o n a b o u t : h o m e s c r e e n )
* [ 1 ] https : //wiki.mozilla.org/Firefox/Projects/Firefox_Start/Snippet_Service ***/
2018-02-19 11:40:53 +01:00
user _pref ( "browser.aboutHomeSnippets.updateUrl" , "data:," ) ;
2018-04-13 17:27:45 +00:00
/ * 0 3 8 0 : d i s a b l e B r o w s e r E r r o r R e p o r t e r ( F F 6 0 + )
* [ 1 ] https : //support.mozilla.org/en-US/kb/firefox-nightly-error-collection
* [ 2 ] https : //firefox-source-docs.mozilla.org/browser/browser/BrowserErrorReporter.html ***/
user _pref ( "browser.chrome.errorReporter.enabled" , false ) ;
user _pref ( "browser.chrome.errorReporter.submitUrl" , "" ) ;
2017-06-17 09:13:14 +02:00
2018-11-13 15:01:35 +00:00
/*** 0400: BLOCKLISTS / SAFE BROWSING / TRACKING PROTECTION
2017-06-17 09:13:14 +02:00
This section has security & tracking protection implications vs privacy concerns vs effectiveness
vs 3 rd party 'censorship' . We DO NOT advocate no protection . If you disable Tracking Protection ( TP )
and / or Safe Browsing ( SB ) , then SECTION 0400 REQUIRES YOU HAVE uBLOCK ORIGIN INSTALLED .
2017-07-24 06:50:55 +12:00
Safe Browsing is designed to protect users from malicious sites . Tracking Protection is designed
to lessen the impact of third parties on websites to reduce tracking and to speed up your browsing .
2017-07-25 05:15:37 +12:00
These do rely on 3 rd parties ( Google for SB and Disconnect for TP ) , but many steps , which are
2017-06-17 09:13:14 +02:00
continually being improved , have been taken to preserve privacy . Disable at your own risk .
* * * /
2017-09-16 10:28:22 +12:00
user _pref ( "_user.js.parrot" , "0400 syntax error: the parrot's passed on!" ) ;
2017-06-17 09:13:14 +02:00
/** BLOCKLISTS ***/
/ * 0 4 0 1 : e n a b l e F i r e f o x b l o c k l i s t , b u t s a n i t i z e b l o c k l i s t u r l
* [ NOTE ] It includes updates for "revoked certificates"
2017-08-30 17:07:43 +12:00
* [ 1 ] https : //blog.mozilla.org/security/2015/03/03/revoking-intermediate-certificates-introducing-onecrl/
2017-06-17 09:13:14 +02:00
* [ 2 ] https : //trac.torproject.org/projects/tor/ticket/16931 ***/
2018-09-12 22:17:56 +00:00
user _pref ( "extensions.blocklist.enabled" , true ) ; // default: true
2017-06-17 09:13:14 +02:00
user _pref ( "extensions.blocklist.url" , "https://blocklists.settings.services.mozilla.com/v1/blocklist/3/%APP_ID%/%APP_VERSION%/" ) ;
2018-10-23 15:45:31 +00:00
/ * 0 4 0 3 : d i s a b l e i n d i v i d u a l u n w a n t e d / u n n e e d e d p a r t s o f t h e K i n t o b l o c k l i s t s
2017-06-17 09:13:14 +02:00
* What is Kinto ? : https : //wiki.mozilla.org/Firefox/Kinto#Specifications
* As Firefox transitions to Kinto , the blocklists have been broken down into entries for certs to be
2017-09-09 16:18:16 +12:00
* revoked , extensions and plugins to be disabled , and gfx environments that cause problems or crashes * * * /
2017-06-17 09:13:14 +02:00
// user_pref("services.blocklist.onecrl.collection", ""); // revoked certificates
// user_pref("services.blocklist.addons.collection", "");
// user_pref("services.blocklist.plugins.collection", "");
// user_pref("services.blocklist.gfx.collection", "");
2018-08-12 03:11:23 +00:00
2017-06-17 09:13:14 +02:00
/ * * S A F E B R O W S I N G ( S B )
2018-10-25 00:13:50 +00:00
This sub - section has been redesigned to differentiate between "real-time" / "user initiated" data
being sent to Google from all other settings such as using local blocklists / whitelists and updating
those lists . There are NO privacy issues here . * IF * required , a full url is never sent to Google ,
only a PART - hash of the prefix , and this is hidden with noise of other real PART - hashes . Google also
swear it is anonymized and only used to flag malicious sites / activity . Firefox also takes measures
such as striping out identifying parameters and storing safe browsing cookies in a separate jar .
SB v4 ( FF57 + ) doesn ' t even use cookies . ( # Turn on browser . safebrowsing . debug to monitor this activity )
2017-06-17 09:13:14 +02:00
# Required reading [ # ] https : //feeding.cloud.geek.nz/posts/how-safe-browsing-works-in-firefox/
[ 1 ] https : //wiki.mozilla.org/Security/Safe_Browsing ***/
2018-03-27 08:49:39 +13:00
/ * 0 4 1 0 : d i s a b l e " B l o c k d a n g e r o u s a n d d e c e p t i v e c o n t e n t " ( u n d e r O p t i o n s > P r i v a c y & S e c u r i t y )
2017-06-17 09:13:14 +02:00
* This covers deceptive sites such as phishing and social engineering * * * /
// user_pref("browser.safebrowsing.malware.enabled", false);
// user_pref("browser.safebrowsing.phishing.enabled", false); // (FF50+)
2018-03-27 08:49:39 +13:00
/ * 0 4 1 1 : d i s a b l e " B l o c k d a n g e r o u s d o w n l o a d s " ( u n d e r O p t i o n s > P r i v a c y & S e c u r i t y )
2017-06-17 09:13:14 +02:00
* This covers malware and PUPs ( potentially unwanted programs ) * * * /
// user_pref("browser.safebrowsing.downloads.enabled", false);
2018-03-27 08:49:39 +13:00
/* 0412: disable "Warn me about unwanted and uncommon software" (under Options>Privacy & Security) (FF48+) ***/
2017-06-17 09:13:14 +02:00
// 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); // (FF49+)
// user_pref("browser.safebrowsing.downloads.remote.block_dangerous_host", false); // (FF49+)
/* 0413: disable Google safebrowsing updates ***/
// user_pref("browser.safebrowsing.provider.google.updateURL", "");
// user_pref("browser.safebrowsing.provider.google.gethashURL", "");
// user_pref("browser.safebrowsing.provider.google4.updateURL", ""); // (FF50+)
// user_pref("browser.safebrowsing.provider.google4.gethashURL", ""); // (FF50+)
/* 0414: 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" , "" ) ;
/* 0415: disable reporting URLs ***/
user _pref ( "browser.safebrowsing.provider.google.reportURL" , "" ) ;
user _pref ( "browser.safebrowsing.reportPhishURL" , "" ) ;
user _pref ( "browser.safebrowsing.provider.google4.reportURL" , "" ) ; // (FF50+)
user _pref ( "browser.safebrowsing.provider.google.reportMalwareMistakeURL" , "" ) ; // (FF54+)
user _pref ( "browser.safebrowsing.provider.google.reportPhishMistakeURL" , "" ) ; // (FF54+)
user _pref ( "browser.safebrowsing.provider.google4.reportMalwareMistakeURL" , "" ) ; // (FF54+)
user _pref ( "browser.safebrowsing.provider.google4.reportPhishMistakeURL" , "" ) ; // (FF54+)
/ * 0 4 1 6 : d i s a b l e ' i g n o r e t h i s w a r n i n g ' o n S a f e B r o w s i n g w a r n i n g s w h i c h w h e n c l i c k e d
* bypasses the block for that session . This is a means for admins to enforce SB
2018-04-28 07:30:47 +00:00
* [ TEST ] see github wiki APPENDIX A : Test Sites : Section 5
2018-03-15 02:22:58 +13:00
* [ 1 ] https : //bugzilla.mozilla.org/1226490 ***/
2017-06-17 09:13:14 +02:00
// user_pref("browser.safebrowsing.allowOverride", false);
2018-01-17 17:33:45 +13:00
/* 0417: disable data sharing (FF58+) ***/
user _pref ( "browser.safebrowsing.provider.google4.dataSharing.enabled" , false ) ;
user _pref ( "browser.safebrowsing.provider.google4.dataSharingURL" , "" ) ;
2018-08-12 03:11:23 +00:00
2018-11-13 15:01:35 +00:00
/ * * T R A C K I N G P R O T E C T I O N ( T P )
2017-06-17 09:13:14 +02:00
There are NO privacy concerns here , but we strongly recommend to use uBlock Origin as well ,
as it offers more comprehensive and specialized lists . It also allows per domain control . * * * /
/ * 0 4 2 0 : e n a b l e T r a c k i n g P r o t e c t i o n i n a l l w i n d o w s
2017-07-06 19:03:36 +12:00
* [ NOTE ] TP sends DNT headers regardless of the DNT pref ( see 1610 )
2017-06-17 09:13:14 +02:00
* [ 1 ] https : //wiki.mozilla.org/Security/Tracking_protection
2017-08-31 17:27:04 +12:00
* [ 2 ] https : //support.mozilla.org/kb/tracking-protection-firefox ***/
2018-03-26 19:44:15 +00:00
// user_pref("privacy.trackingprotection.pbmode.enabled", true); // default: true
// user_pref("privacy.trackingprotection.enabled", true);
2018-05-25 15:44:27 +00:00
/ * 0 4 2 2 : s e t w h i c h T r a c k i n g P r o t e c t i o n b l o c k l i s t t o u s e
* [ WARNING ] We don ' t recommend enforcing this from here , as available block lists can change
2018-08-09 03:30:57 +00:00
* [ SETTING ] Privacy & Security > Tracking Protection > Change Block List * * * /
2017-06-17 09:13:14 +02:00
// user_pref("urlclassifier.trackingTable", "test-track-simple,base-track-digest256"); // basic
/ * 0 4 2 3 : d i s a b l e M o z i l l a ' s b l o c k l i s t f o r k n o w n F l a s h t r a c k i n g / f i n g e r p r i n t i n g ( F F 4 8 + )
2017-07-09 18:49:39 +02:00
* [ 1 ] https : //www.ghacks.net/2016/07/18/firefox-48-blocklist-against-plugin-fingerprinting/
2018-03-15 02:22:58 +13:00
* [ 2 ] https : //bugzilla.mozilla.org/1237198 ***/
2017-06-17 09:13:14 +02:00
// user_pref("browser.safebrowsing.blockedURIs.enabled", false);
/* 0424: disable Mozilla's tracking protection and Flash blocklist updates ***/
// user_pref("browser.safebrowsing.provider.mozilla.gethashURL", "");
// user_pref("browser.safebrowsing.provider.mozilla.updateURL", "");
2017-08-19 13:35:27 +12:00
/ * 0 4 2 5 : d i s a b l e p a s s i v e T r a c k i n g P r o t e c t i o n ( F F 5 3 + )
* Passive TP annotates channels to lower the priority of network loads for resources on the tracking protection list
* [ NOTE ] It has no effect if TP is enabled , but keep in mind that by default TP is only enabled in Private Windows
* This is included for people who want to completely disable Tracking Protection .
2018-03-15 02:22:58 +13:00
* [ 1 ] https : //bugzilla.mozilla.org/buglist.cgi?bug_id=1170190,1141814 ***/
2017-08-19 13:35:27 +12:00
// user_pref("privacy.trackingprotection.annotate_channels", false);
// user_pref("privacy.trackingprotection.lower_network_priority", false);
2018-11-13 15:30:39 +00:00
/* 0426: enforce Content Blocking (required to block cookies) (FF63+) ***/
user _pref ( "browser.contentblocking.enabled" , true ) ; // default: true
2017-06-17 09:13:14 +02:00
2018-03-20 16:53:53 +01:00
/*** 0500: SYSTEM ADD-ONS / EXPERIMENTS
System Add - ons are a method for shipping extensions , considered to be
2017-07-19 05:55:03 +12:00
built - in features to Firefox , that are hidden from the about : addons UI .
2018-03-20 16:53:53 +01:00
To view your System Add - ons go to about : support , they are listed under "Firefox Features"
2017-07-23 09:01:36 +12:00
2018-03-20 16:53:53 +01:00
Some System Add - ons have no on - off prefs . Instead you can manually remove them . Note that app
2017-07-23 09:01:36 +12:00
updates will restore them . They may also be updated and possibly restored automatically ( see 0505 )
* Portable : "...\App\Firefox64\browser\features\" (or " App \ Firefox \ etc " for 32 bit )
* Windows : "...\Program Files\Mozilla\browser\features" ( or "Program Files (X86)\etc" for 32 bit )
2017-08-08 14:43:39 +12:00
* Mac : "...\Applications\Firefox\Contents\Resources\browser\features\"
2017-08-07 05:33:26 +12:00
[ NOTE ] On Mac you can right - click on the application and select "Show Package Contents"
2017-09-17 19:58:54 +12:00
* Linux : "/usr/lib/firefox/browser/features" ( or similar )
2017-07-23 09:01:36 +12:00
2017-08-30 17:07:43 +12:00
[ 1 ] https : //firefox-source-docs.mozilla.org/toolkit/mozapps/extensions/addon-manager/SystemAddons.html
2017-07-19 05:55:03 +12:00
[ 2 ] https : //dxr.mozilla.org/mozilla-central/source/browser/extensions
* * * /
2017-09-16 10:28:22 +12:00
user _pref ( "_user.js.parrot" , "0500 syntax error: the parrot's cashed in 'is chips!" ) ;
2017-07-19 05:55:03 +12:00
/* 0502: disable Mozilla permission to silently opt you into tests ***/
user _pref ( "network.allow-experiments" , false ) ;
2018-03-20 15:29:37 +00:00
/ * 0 5 0 3 : d i s a b l e N o r m a n d y / S h i e l d ( F F 6 0 + )
* Shield is an telemetry system ( including Heartbeat ) that can also push and test "recipes"
* [ 1 ] https : //wiki.mozilla.org/Firefox/Shield
* [ 2 ] https : //github.com/mozilla/normandy ***/
user _pref ( "app.normandy.enabled" , false ) ;
user _pref ( "app.normandy.api_url" , "" ) ;
user _pref ( "app.shield.optoutstudies.enabled" , false ) ;
2018-05-25 04:03:59 +00:00
/ * 0 5 0 5 : d i s a b l e S y s t e m A d d - o n u p d a t e s
* [ NOTE ] In FF61 and lower , you will not get any System Add - on updates except when you update Firefox * * * /
// user_pref("extensions.systemAddon.update.enabled", false); // (FF62+)
2017-07-23 09:01:36 +12:00
// user_pref("extensions.systemAddon.update.url", "");
2018-03-20 16:53:53 +01:00
/ * 0 5 0 6 : d i s a b l e P i n g C e n t r e t e l e m e t r y ( u s e d i n s e v e r a l S y s t e m A d d - o n s ) ( F F 5 7 + )
2017-11-17 04:06:04 +13:00
* Currently blocked by 'datareporting.healthreport.uploadEnabled' ( see 0333 ) * * * /
user _pref ( "browser.ping-centre.telemetry" , false ) ;
2017-07-19 05:55:03 +12:00
/ * 0 5 1 0 : d i s a b l e P o c k e t ( F F 3 9 + )
* Pocket is a third party ( now owned by Mozilla ) "save for later" cloud service
* [ 1 ] https : //en.wikipedia.org/wiki/Pocket_(application)
* [ 2 ] https : //www.gnu.gl/blog/Posts/multiple-vulnerabilities-in-pocket/ ***/
user _pref ( "extensions.pocket.enabled" , false ) ;
2017-07-23 04:02:33 +12:00
/ * 0 5 1 4 : d i s a b l e A c t i v i t y S t r e a m ( F F 5 4 + )
2018-04-21 17:26:12 +00:00
* Activity Stream is the default homepage / newtab in FF57 + . It is based on metadata and browsing behavior ,
2018-04-21 16:33:35 +00:00
* and includes telemetry and web content such as snippets , top stories ( pocket ) , top sites , etc .
* - ONE : make sure to set your "home" and "newtab" to about : blank ( or use an extension to control them )
* - TWO : DELETE the XPI file in your System Add - ons directory ( note this get reinstalled on app updates )
* And / or you can try to control the ever - growing , ever - changing "browser.newtabpage.activity-stream.*" prefs
2018-10-29 14:26:49 +00:00
* [ FF63 + ] Activity Stream ( AS ) is now builtin and no longer an easily deletable system addon !
* We ' ll clean this up and move to a new number when ESR67 is released .
2017-07-19 05:55:03 +12:00
* [ 1 ] https : //wiki.mozilla.org/Firefox/Activity_Stream
* [ 2 ] https : //www.ghacks.net/2016/02/15/firefox-mockups-show-activity-stream-new-tab-page-and-share-updates/ ***/
2017-11-09 07:05:08 +13:00
user _pref ( "browser.library.activity-stream.enabled" , false ) ; // (FF57+)
2018-10-29 14:26:49 +00:00
/* 0514a: disable AS Snippets ***/
user _pref ( "browser.newtabpage.activity-stream.disableSnippets" , true ) ;
user _pref ( "browser.newtabpage.activity-stream.feeds.snippets" , false ) ; // [SETTING] Home>Firefox Home Content>Snippets
/* 0514b: disable AS Top Stories and other Pocket-based and/or sponsored content ***/
user _pref ( "browser.newtabpage.activity-stream.feeds.section.topstories" , false ) ;
user _pref ( "browser.newtabpage.activity-stream.section.highlights.includePocket" , false ) ; // [SETTING] Home>Firefox Home Content>Highlights>Pages Saved to Pocket
user _pref ( "browser.newtabpage.activity-stream.showSponsored" , false ) ;
/* 0514c: disable AS telemetry ***/
user _pref ( "browser.newtabpage.activity-stream.feeds.telemetry" , false ) ;
user _pref ( "browser.newtabpage.activity-stream.telemetry" , false ) ;
user _pref ( "browser.newtabpage.activity-stream.telemetry.ping.endpoint" , "" ) ;
2017-09-28 21:27:40 +13:00
/ * 0 5 1 5 : d i s a b l e S c r e e n s h o t s ( F F 5 5 + )
2018-04-29 13:42:02 +00:00
* alternatively in FF60 + , disable uploading to the Screenshots server
2017-07-28 18:31:46 +02:00
* [ 1 ] https : //github.com/mozilla-services/screenshots
* [ 2 ] https : //www.ghacks.net/2017/05/28/firefox-screenshots-integrated-in-firefox-nightly/ ***/
2017-09-28 21:27:40 +13:00
// user_pref("extensions.screenshots.disabled", true);
2018-04-29 13:42:02 +00:00
// user_pref("extensions.screenshots.upload-disabled", true); // (FF60+)
2017-07-28 18:31:46 +02:00
/ * 0 5 1 6 : d i s a b l e O n b o a r d i n g ( F F 5 5 + )
2017-07-21 18:14:05 +12:00
* Onboarding is an interactive tour / setup for new installs / profiles and features . Every time
* about : home or about : newtab is opened , the onboarding overlay is injected into that page
2017-07-25 06:29:20 +12:00
* [ NOTE ] Onboarding uses Google Analytics [ 2 ] , and leaks resource : //URIs [3]
2017-07-24 03:32:57 +12:00
* [ 1 ] https : //wiki.mozilla.org/Firefox/Onboarding
* [ 2 ] https : //github.com/mozilla/onboard/commit/db4d6c8726c89a5d6a241c1b1065827b525c5baf
2018-03-15 02:22:58 +13:00
* [ 3 ] https : //bugzilla.mozilla.org/863246#c154 ***/
2017-07-21 18:14:05 +12:00
user _pref ( "browser.onboarding.enabled" , false ) ;
2017-07-28 21:02:10 +12:00
/ * 0 5 1 7 : d i s a b l e F o r m A u t o f i l l ( F F 5 5 + )
2018-03-27 08:49:39 +13:00
* [ SETTING ] Privacy & Security > Forms & Passwords > Enable Profile Autofill
2017-07-26 23:37:45 +12:00
* [ NOTE ] Stored data is NOT secure ( uses a JSON file )
* [ NOTE ] Heuristics controls Form Autofill on forms without @ autocomplete attributes
* [ 1 ] https : //wiki.mozilla.org/Firefox/Features/Form_Autofill
* [ 2 ] https : //www.ghacks.net/2017/05/24/firefoxs-new-form-autofill-is-awesome/ ***/
user _pref ( "extensions.formautofill.addresses.enabled" , false ) ;
2017-09-16 01:32:22 +12:00
user _pref ( "extensions.formautofill.available" , "off" ) ; // (FF56+)
2017-08-26 16:27:48 +02:00
user _pref ( "extensions.formautofill.creditCards.enabled" , false ) ; // (FF56+)
2017-07-26 23:37:45 +12:00
user _pref ( "extensions.formautofill.heuristics.enabled" , false ) ;
2017-07-21 18:23:14 +12:00
/ * 0 5 1 8 : d i s a b l e W e b C o m p a t i b i l i t y R e p o r t e r ( F F 5 6 + )
* Web Compatibility Reporter adds a "Report Site Issue" button to send data to Mozilla * * * /
user _pref ( "extensions.webcompat-reporter.enabled" , false ) ;
2017-07-19 05:55:03 +12:00
2017-07-24 06:50:55 +12:00
/*** 0600: BLOCK IMPLICIT OUTBOUND [not explicitly asked for - e.g. clicked on] ***/
2017-09-16 10:28:22 +12:00
user _pref ( "_user.js.parrot" , "0600 syntax error: the parrot's no more!" ) ;
2017-06-17 09:13:14 +02:00
/ * 0 6 0 1 : d i s a b l e l i n k p r e f e t c h i n g
2017-08-31 17:27:04 +12:00
* [ 1 ] https : //developer.mozilla.org/docs/Web/HTTP/Link_prefetching_FAQ ***/
2017-06-17 09:13:14 +02:00
user _pref ( "network.prefetch-next" , false ) ;
/ * 0 6 0 2 : d i s a b l e D N S p r e f e t c h i n g
2017-07-09 18:49:39 +02:00
* [ 1 ] https : //www.ghacks.net/2013/04/27/firefox-prefetching-what-you-need-to-know/
2017-08-31 17:27:04 +12:00
* [ 2 ] https : //developer.mozilla.org/docs/Web/HTTP/Headers/X-DNS-Prefetch-Control ***/
2017-06-17 09:13:14 +02:00
user _pref ( "network.dns.disablePrefetch" , true ) ;
user _pref ( "network.dns.disablePrefetchFromHTTPS" , true ) ; // (hidden pref)
/ * 0 6 0 3 a : d i s a b l e S e e r / N e c k o
2017-08-31 17:27:04 +12:00
* [ 1 ] https : //developer.mozilla.org/docs/Mozilla/Projects/Necko ***/
2017-06-17 09:13:14 +02:00
user _pref ( "network.predictor.enabled" , false ) ;
/ * 0 6 0 3 b : d i s a b l e m o r e N e c k o / C a p t i v e P o r t a l
* [ 1 ] https : //en.wikipedia.org/wiki/Captive_portal
* [ 2 ] https : //wiki.mozilla.org/Necko/CaptivePortal
* [ 3 ] https : //trac.torproject.org/projects/tor/ticket/21790 ***/
user _pref ( "captivedetect.canonicalURL" , "" ) ;
user _pref ( "network.captive-portal-service.enabled" , false ) ; // (FF52+)
/ * 0 6 0 5 : d i s a b l e l i n k - m o u s e o v e r o p e n i n g c o n n e c t i o n t o l i n k e d s e r v e r
2017-08-30 17:07:43 +12:00
* [ 1 ] https : //news.slashdot.org/story/15/08/14/2321202/how-to-quash-firefoxs-silent-requests
* [ 2 ] https : //www.ghacks.net/2015/08/16/block-firefox-from-connecting-to-sites-when-you-hover-over-links/ ***/
2017-06-17 09:13:14 +02:00
user _pref ( "network.http.speculative-parallel-limit" , 0 ) ;
/ * 0 6 0 6 : d i s a b l e p i n g s ( b u t e n f o r c e s a m e h o s t i n c a s e )
* [ 1 ] http : //kb.mozillazine.org/Browser.send_pings
* [ 2 ] http : //kb.mozillazine.org/Browser.send_pings.require_same_host ***/
user _pref ( "browser.send_pings" , false ) ;
user _pref ( "browser.send_pings.require_same_host" , true ) ;
/ * 0 6 0 7 : d i s a b l e l i n k s l a u n c h i n g W i n d o w s S t o r e o n W i n d o w s 8 / 8 . 1 / 1 0 [ W I N D O W S ]
2017-07-09 18:49:39 +02:00
* [ 1 ] https : //www.ghacks.net/2016/03/25/block-firefox-chrome-windows-store/ ***/
2017-06-17 09:13:14 +02:00
user _pref ( "network.protocol-handler.external.ms-windows-store" , false ) ;
/* 0608: disable predictor / prefetching (FF48+) ***/
user _pref ( "network.predictor.enable-prefetch" , false ) ;
2018-03-13 09:04:54 +00:00
/*** 0700: HTTP* / TCP/IP / DNS / PROXY / SOCKS etc ***/
user _pref ( "_user.js.parrot" , "0700 syntax error: the parrot's given up the ghost!" ) ;
2018-08-17 07:15:47 +00:00
/ * 0 7 0 1 : d i s a b l e I P v 6
* IPv6 can be abused , especially regarding MAC addresses . They also do not play nice
2018-09-12 22:17:56 +00:00
* with VPNs . That ' s even assuming your ISP and / or router and / or website can handle it
2018-08-25 06:09:28 +00:00
* [ WARNING ] This is just an application level fallback . Disabling IPv6 is best done
* at an OS / network level , and / or configured properly in VPN setups
* [ TEST ] http : //ipv6leak.com/
2018-08-17 07:15:47 +00:00
* [ 1 ] https : //github.com/ghacksuserjs/ghacks-user.js/issues/437#issuecomment-403740626
* [ 2 ] https : //www.internetsociety.org/tag/ipv6-security/ (see Myths 2,4,5,6) ***/
user _pref ( "network.dns.disableIPv6" , true ) ;
2018-03-13 09:04:54 +00:00
/ * 0 7 0 2 : d i s a b l e H T T P 2 ( w h i c h w a s b a s e d o n S P D Y w h i c h i s n o w d e p r e c a t e d )
* HTTP2 raises concerns with "multiplexing" and "server push" , does nothing to enhance
* privacy , and in fact opens up a number of server - side fingerprinting opportunities
* [ 1 ] https : //http2.github.io/faq/
2018-03-14 11:19:09 +00:00
* [ 2 ] https : //blog.scottlogic.com/2014/11/07/http-2-a-quick-look.html
2018-03-13 09:04:54 +00:00
* [ 3 ] https : //queue.acm.org/detail.cfm?id=2716278
* [ 4 ] https : //github.com/ghacksuserjs/ghacks-user.js/issues/107 ***/
user _pref ( "network.http.spdy.enabled" , false ) ;
user _pref ( "network.http.spdy.enabled.deps" , false ) ;
user _pref ( "network.http.spdy.enabled.http2" , false ) ;
/ * 0 7 0 3 : d i s a b l e H T T P A l t e r n a t i v e S e r v i c e s ( F F 3 7 + )
* [ 1 ] https : //www.ghacks.net/2015/08/18/a-comprehensive-list-of-firefox-privacy-and-security-settings/#comment-3970881
* [ 2 ] https : //www.mnot.net/blog/2016/03/09/alt-svc ***/
user _pref ( "network.http.altsvc.enabled" , false ) ;
user _pref ( "network.http.altsvc.oe" , false ) ;
/ * 0 7 0 4 : e n f o r c e t h e p r o x y s e r v e r t o d o a n y D N S l o o k u p s w h e n u s i n g S O C K S
* e . g . in TOR , this stops your local DNS server from knowing your Tor destination
* as a remote Tor node will handle the DNS request
* [ 1 ] http : //kb.mozillazine.org/Network.proxy.socks_remote_dns
* [ 2 ] https : //trac.torproject.org/projects/tor/wiki/doc/TorifyHOWTO/WebBrowsers ***/
user _pref ( "network.proxy.socks_remote_dns" , true ) ;
/ * 0 7 0 6 : r e m o v e p a t h s w h e n s e n d i n g U R L s t o P A C s c r i p t s ( F F 5 1 + )
* CVE - 2017 - 5384 : Information disclosure via Proxy Auto - Config ( PAC )
2018-03-15 02:22:58 +13:00
* [ 1 ] https : //bugzilla.mozilla.org/1255474 ***/
2018-05-16 18:31:28 +02:00
user _pref ( "network.proxy.autoconfig_url.include_path" , false ) ; // default: false
2018-05-07 14:57:42 +00:00
/ * 0 7 0 7 : d i s a b l e ( o r s e t u p ) D N S - o v e r - H T T P S ( D o H ) ( F F 6 0 + )
* TRR = Trusted Recursive Resolver
* . mode : 0 = off , 1 = race , 2 = TRR first , 3 = TRR only , 4 = race for stats , but always use native result
* [ WARNING ] DoH bypasses hosts and gives info to yet another party ( e . g . Cloudflare )
2018-06-01 04:32:52 +00:00
* [ 1 ] https : //www.ghacks.net/2018/04/02/configure-dns-over-https-in-firefox/
* [ 2 ] https : //hacks.mozilla.org/2018/05/a-cartoon-intro-to-dns-over-https/ ***/
2018-05-07 14:57:42 +00:00
// user_pref("network.trr.mode", 0);
// user_pref("network.trr.bootstrapAddress", "");
// user_pref("network.trr.uri", "");
2018-05-11 18:14:40 +02:00
/ * 0 7 0 8 : d i s a b l e F T P ( F F 6 0 + )
* [ 1 ] https : //www.ghacks.net/2018/02/20/firefox-60-with-new-preference-to-disable-ftp/ ***/
// user_pref("network.ftp.enabled", false);
2018-07-04 09:15:44 +00:00
/ * 0 7 0 9 : d i s a b l e u s i n g U N C ( U n i f o r m N a m i n g C o n v e n t i o n ) p a t h s ( F F 6 1 + )
* [ 1 ] https : //trac.torproject.org/projects/tor/ticket/26424 ***/
user _pref ( "network.file.disable_unc_paths" , true ) ; // (hidden pref)
2018-10-14 12:11:56 +00:00
/ * 0 7 1 0 : d i s a b l e G I O a s a p o t e n t i a l p r o x y b y p a s s v e c t o r
* Gvfs / GIO has a set of supported protocols like obex , network , archive , computer , dav , cdda ,
* gphoto2 , trash , etc . By default only smb and sftp protocols are accepted so far ( as of FF64 )
* [ 1 ] https : //bugzilla.mozilla.org/1433507
* [ 2 ] https : //trac.torproject.org/23044
* [ 3 ] https : //en.wikipedia.org/wiki/GVfs
* [ 4 ] https : //en.wikipedia.org/wiki/GIO_(software) ***/
user _pref ( "network.gio.supported-protocols" , "" ) ; // (hidden pref)
2018-03-13 09:04:54 +00:00
2017-06-17 09:13:14 +02:00
/*** 0800: LOCATION BAR / SEARCH BAR / SUGGESTIONS / HISTORY / FORMS [ SETUP ]
If you are in a private environment ( no unwanted eyeballs ) and your device is private
( restricted access ) , and the device is secure when unattended ( locked , encrypted , forensic
hardened ) , then items 0850 and above can be relaxed in return for more convenience and
functionality . Likewise , you may want to check the items cleared on shutdown in section 2800.
[ NOTE ] The urlbar is also commonly referred to as the location bar and address bar
# Required reading [ # ] https : //xkcd.com/538/
2018-08-28 07:57:21 +00:00
* * * /
2017-09-16 10:28:22 +12:00
user _pref ( "_user.js.parrot" , "0800 syntax error: the parrot's ceased to be!" ) ;
2017-06-17 09:13:14 +02:00
/ * 0 8 0 1 : d i s a b l e l o c a t i o n b a r u s i n g s e a r c h - P R I V A C Y
* don ' t leak typos to a search engine , give an error message instead * * * /
user _pref ( "keyword.enabled" , false ) ;
/ * 0 8 0 2 : d i s a b l e l o c a t i o n b a r d o m a i n g u e s s i n g - P R I V A C Y / S E C U R I T Y
* domain guessing intercepts DNS "hostname not found errors" and resends a
2017-07-24 06:50:55 +12:00
* request ( e . g . by adding www or . com ) . This is inconsistent use ( e . g . FQDNs ) , does not work
2017-06-17 09:13:14 +02:00
* via Proxy Servers ( different error ) , is a flawed use of DNS ( TLDs : why treat . com
* as the 411 for DNS errors ? ) , privacy issues ( why connect to sites you didn ' t
2017-07-24 06:57:33 +12:00
* intend to ) , can leak sensitive data ( e . g . query strings : e . g . Princeton attack ) ,
2017-07-24 06:50:55 +12:00
* and is a security risk ( e . g . common typos & malicious sites set up to exploit this ) * * * /
2017-06-17 09:13:14 +02:00
user _pref ( "browser.fixup.alternate.enabled" , false ) ;
/* 0803: display all parts of the url in the location bar - helps SECURITY ***/
user _pref ( "browser.urlbar.trimURLs" , false ) ;
/ * 0 8 0 4 : l i m i t h i s t o r y l e a k s v i a e n u m e r a t i o n ( P E R T A B : b a c k / f o r w a r d ) - P R I V A C Y
* This is a PER TAB session history . You still have a full history stored under all history
* default = 50 , minimum = 1 = currentpage , 2 is the recommended minimum as some pages
2017-07-24 06:50:55 +12:00
* use it as a means of referral ( e . g . hotlinking ) , 4 or 6 or 10 may be more practical * * * /
2017-06-17 09:13:14 +02:00
user _pref ( "browser.sessionhistory.max_entries" , 10 ) ;
/ * 0 8 0 5 : d i s a b l e C S S q u e r y i n g p a g e h i s t o r y - C S S h i s t o r y l e a k - P R I V A C Y
* [ NOTE ] This has NEVER been fully "resolved" : in Mozilla / docs it is stated it ' s
* only in 'certain circumstances' , also see latest comments in [ 2 ]
* [ TEST ] http : //lcamtuf.coredump.cx/yahh/ (see github wiki APPENDIX C on how to use)
* [ 1 ] https : //dbaron.org/mozilla/visited-privacy
2018-03-15 02:22:58 +13:00
* [ 2 ] https : //bugzilla.mozilla.org/147777
2017-08-31 17:27:04 +12:00
* [ 3 ] https : //developer.mozilla.org/docs/Web/CSS/Privacy_and_the_:visited_selector ***/
2017-06-17 09:13:14 +02:00
user _pref ( "layout.css.visited_links_enabled" , false ) ;
/* 0806: disable displaying javascript in history URLs - SECURITY ***/
user _pref ( "browser.urlbar.filter.javascript" , true ) ;
/ * 0 8 0 7 : d i s a b l e s e a r c h b a r L I V E s e a r c h s u g g e s t i o n s - P R I V A C Y
2018-03-27 08:49:39 +13:00
* [ SETTING ] Search > Provide search suggestions * * * /
2017-06-17 09:13:14 +02:00
user _pref ( "browser.search.suggest.enabled" , false ) ;
/ * 0 8 0 8 : d i s a b l e l o c a t i o n b a r L I V E s e a r c h s u g g e s t i o n s ( r e q u i r e s 0 8 0 7 = t r u e ) - P R I V A C Y
* Also disable the location bar prompt to enable / disable or learn more about it .
2018-03-27 08:49:39 +13:00
* [ SETTING ] Search > Show search suggestions in address bar results * * * /
2017-06-17 09:13:14 +02:00
user _pref ( "browser.urlbar.suggest.searches" , false ) ;
user _pref ( "browser.urlbar.userMadeSearchSuggestionsChoice" , true ) ; // (FF41+)
/ * 0 8 0 9 : d i s a b l e l o c a t i o n b a r s u g g e s t i n g " p r e l o a d e d " t o p w e b s i t e s ( F F 5 4 + )
2018-03-15 02:22:58 +13:00
* [ 1 ] https : //bugzilla.mozilla.org/1211726 ***/
2017-06-17 09:13:14 +02:00
user _pref ( "browser.urlbar.usepreloadedtopurls.enabled" , false ) ;
2017-07-22 22:25:07 +02:00
/ * 0 8 1 0 : d i s a b l e l o c a t i o n b a r m a k i n g s p e c u l a t i v e c o n n e c t i o n s ( F F 5 6 + )
2018-03-15 02:22:58 +13:00
* [ 1 ] https : //bugzilla.mozilla.org/1348275 ***/
2017-07-23 03:11:56 +12:00
user _pref ( "browser.urlbar.speculativeConnect.enabled" , false ) ;
2017-12-09 06:13:40 +13:00
/ * 0 8 5 0 a : d i s a b l e l o c a t i o n b a r a u t o c o m p l e t e a n d s u g g e s t i o n t y p e s
* If you enforce any of the suggestion types , you MUST enforce 'autocomplete'
* - If * ALL * of the suggestion types are false , 'autocomplete' must also be false
* - If * ANY * of the suggestion types are true , 'autocomplete' must also be true
2018-03-27 08:49:39 +13:00
* [ SETTING ] Privacy & Security > Address Bar > When using the address bar , suggest
2017-12-09 06:13:40 +13:00
* [ WARNING ] If all three suggestion types are false , search engine keywords are disabled * * * /
user _pref ( "browser.urlbar.autocomplete.enabled" , false ) ;
2017-06-17 09:13:14 +02:00
user _pref ( "browser.urlbar.suggest.history" , false ) ;
user _pref ( "browser.urlbar.suggest.bookmark" , false ) ;
user _pref ( "browser.urlbar.suggest.openpage" , false ) ;
/ * 0 8 5 0 c : d i s a b l e l o c a t i o n b a r d r o p d o w n
* This value controls the total number of entries to appear in the location bar dropdown
* [ NOTE ] Items ( bookmarks / history / openpages ) with a high "frecency" / "bonus" will always
* be displayed ( no we do not know how these are calculated or what the threshold is ) ,
* and this does not affect the search by search engine suggestion ( see 0808 )
* [ USAGE ] This setting is only useful if you want to enable search engine keywords
2017-12-09 06:13:40 +13:00
* ( i . e . at least one of 0850 a suggestion types must be true ) but you want to * limit * suggestions shown * * * /
2017-06-17 09:13:14 +02:00
// user_pref("browser.urlbar.maxRichResults", 0);
/ * 0 8 5 0 d : d i s a b l e l o c a t i o n b a r a u t o f i l l
* [ 1 ] http : //kb.mozillazine.org/Inline_autocomplete ***/
user _pref ( "browser.urlbar.autoFill" , false ) ;
/ * 0 8 5 0 e : d i s a b l e l o c a t i o n b a r o n e - o f f s e a r c h e s ( F F 5 1 + )
2017-07-09 18:49:39 +02:00
* [ 1 ] https : //www.ghacks.net/2016/08/09/firefox-one-off-searches-address-bar/ ***/
2017-06-17 09:13:14 +02:00
user _pref ( "browser.urlbar.oneOffSearches" , false ) ;
2017-11-16 16:27:54 +13:00
/ * 0 8 5 0 f : d i s a b l e l o c a t i o n b a r s u g g e s t i n g l o c a l s e a r c h h i s t o r y ( F F 5 7 + )
2018-03-15 02:22:58 +13:00
* [ 1 ] https : //bugzilla.mozilla.org/1181644 ***/
2017-11-16 16:27:54 +13:00
user _pref ( "browser.urlbar.maxHistoricalSearchSuggestions" , 0 ) ; // max. number of search suggestions
2017-06-17 09:13:14 +02:00
/ * 0 8 6 0 : d i s a b l e s e a r c h a n d f o r m h i s t o r y
2018-03-27 08:49:39 +13:00
* [ SETTING ] Privacy & Security > History > Custom Settings > Remember search and form history
2017-06-17 09:13:14 +02:00
* [ NOTE ] You can clear formdata on exiting Firefox ( see 2803 ) * * * /
2017-08-06 04:40:49 +12:00
user _pref ( "browser.formfill.enable" , false ) ;
2017-06-17 09:13:14 +02:00
/ * 0 8 6 2 : d i s a b l e b r o w s i n g a n d d o w n l o a d h i s t o r y
2018-03-27 08:49:39 +13:00
* [ SETTING ] Privacy & Security > History > Custom Settings > Remember my browsing and download history
2017-06-17 09:13:14 +02:00
* [ NOTE ] You can clear history and downloads on exiting Firefox ( see 2803 ) * * * /
// user_pref("places.history.enabled", false);
2018-09-11 16:43:18 +00:00
/ * 0 8 6 4 : d i s a b l e d a t e / t i m e p i c k e r ( F F 5 7 + d e f a u l t t r u e )
* This can leak your locale if not en - US
* [ 1 ] https : //trac.torproject.org/projects/tor/ticket/21787 ***/
user _pref ( "dom.forms.datetime" , false ) ;
2017-06-17 09:13:14 +02:00
/* 0870: disable Windows jumplist [WINDOWS] ***/
user _pref ( "browser.taskbar.lists.enabled" , false ) ;
user _pref ( "browser.taskbar.lists.frequent.enabled" , false ) ;
user _pref ( "browser.taskbar.lists.recent.enabled" , false ) ;
user _pref ( "browser.taskbar.lists.tasks.enabled" , false ) ;
/* 0871: disable Windows taskbar preview [WINDOWS] ***/
user _pref ( "browser.taskbar.previews.enable" , false ) ;
/*** 0900: PASSWORDS ***/
2017-09-16 10:28:22 +12:00
user _pref ( "_user.js.parrot" , "0900 syntax error: the parrot's expired!" ) ;
2017-06-17 09:13:14 +02:00
/ * 0 9 0 1 : d i s a b l e s a v i n g p a s s w o r d s
2018-03-27 08:49:39 +13:00
* [ SETTING ] Privacy & Security > Forms & Passwords > Remember logins and passwords for sites
2017-06-17 09:13:14 +02:00
* [ NOTE ] This does not clear any passwords already saved * * * /
// user_pref("signon.rememberSignons", false);
/ * 0 9 0 2 : u s e a m a s t e r p a s s w o r d ( r e c o m m e n d e d i f y o u s a v e p a s s w o r d s )
* There are no preferences for this . It is all handled internally .
2018-03-27 08:49:39 +13:00
* [ SETTING ] Privacy & Security > Forms & Passwords > Use a master password
2017-08-31 17:27:04 +12:00
* [ 1 ] https : //support.mozilla.org/kb/use-master-password-protect-stored-logins ***/
2017-06-17 09:13:14 +02:00
/ * 0 9 0 3 : s e t h o w o f t e n F i r e f o x s h o u l d a s k f o r t h e m a s t e r p a s s w o r d
* 0 = the first time ( default ) , 1 = every time it ' s needed , 2 = every n minutes ( as per the next pref ) * * * /
user _pref ( "security.ask_for_password" , 2 ) ;
/ * 0 9 0 4 : s e t h o w o f t e n i n m i n u t e s F i r e f o x s h o u l d a s k f o r t h e m a s t e r p a s s w o r d ( s e e p r e f a b o v e )
* in minutes , default is 30 * * * /
user _pref ( "security.password_lifetime" , 5 ) ;
/ * 0 9 0 5 : d i s a b l e a u t o - f i l l i n g u s e r n a m e & p a s s w o r d f o r m f i e l d s - S E C U R I T Y
* can leak in cross - site forms AND be spoofed
* [ NOTE ] Password will still be auto - filled after a user name is manually entered
* [ 1 ] http : //kb.mozillazine.org/Signon.autofillForms ***/
user _pref ( "signon.autofillForms" , false ) ;
/ * 0 9 0 6 : d i s a b l e w e b s i t e s ' a u t o c o m p l e t e = " o f f " ( F F 3 0 + )
* Don ' t let sites dictate use of saved logins and passwords . Increase security through
* stronger password use . The trade - off is the convenience . Some sites should never be
* saved ( such as banking sites ) . Set at true , informed users can make their own choice . * * * /
2018-05-16 18:31:28 +02:00
user _pref ( "signon.storeWhenAutocompleteOff" , true ) ; // default: true
2017-06-17 09:13:14 +02:00
/ * 0 9 0 7 : d i s p l a y w a r n i n g s f o r l o g i n s o n n o n - s e c u r e ( n o n H T T P S ) p a g e s
2018-03-15 02:22:58 +13:00
* [ 1 ] https : //bugzilla.mozilla.org/1217156 ***/
2017-06-17 09:13:14 +02:00
user _pref ( "security.insecure_password.ui.enabled" , true ) ;
2017-07-25 05:15:37 +12:00
/ * 0 9 0 8 : r e m o v e u s e r & p a s s w o r d i n f o w h e n a t t e m p t i n g t o f i x a n e n t e r e d U R L ( i . e . 0 8 0 2 i s t r u e )
2017-07-24 06:50:55 +12:00
* e . g . //user:password@foo -> //user@(prefix)foo(suffix) NOT //user:password@(prefix)foo(suffix) ***/
2017-06-17 09:13:14 +02:00
user _pref ( "browser.fixup.hide_user_pass" , true ) ;
/* 0909: disable formless login capture for Password Manager (FF51+) ***/
user _pref ( "signon.formlessCapture.enabled" , false ) ;
/ * 0 9 1 0 : d i s a b l e a u t o f i l l i n g s a v e d p a s s w o r d s o n H T T P p a g e s a n d s h o w w a r n i n g ( F F 5 2 + )
* [ 1 ] https : //www.fxsitecompat.com/en-CA/docs/2017/insecure-login-forms-now-disable-autofill-show-warning-beneath-input-control/
2018-03-15 02:22:58 +13:00
* [ 2 ] https : //bugzilla.mozilla.org/buglist.cgi?bug_id=1217152,1319119 ***/
2017-06-17 09:13:14 +02:00
user _pref ( "signon.autofillForms.http" , false ) ;
user _pref ( "security.insecure_field_warning.contextual.enabled" , true ) ;
2017-08-18 12:28:12 +02:00
/ * 0 9 1 1 : p r e v e n t c r o s s - o r i g i n i m a g e s f r o m t r i g g e r i n g a n H T T P - A u t h e n t i c a t i o n p r o m p t ( F F 5 5 + )
2018-03-15 02:22:58 +13:00
* [ 1 ] https : //bugzilla.mozilla.org/1357835 ***/
2017-08-18 12:28:12 +02:00
user _pref ( "network.auth.subresource-img-cross-origin-http-auth-allow" , false ) ;
2017-06-17 09:13:14 +02:00
2018-08-28 08:27:45 +00:00
/ * * * 1 0 0 0 : C A C H E [ S E T U P ]
2018-09-13 05:09:07 +00:00
ETAG [ 1 ] and other [ 2 ] [ 3 ] cache tracking / fingerprinting techniques can be averted by
2018-08-28 08:27:45 +00:00
disabling * BOTH * disk ( 1001 ) and memory ( 1003 ) cache . ETAGs can also be neutralized
2018-09-13 05:09:07 +00:00
by modifying response headers [ 4 ] . Another solution is to use a hardened configuration
with Temporary Containers [ 5 ] . Alternatively , you can * LIMIT * exposure by clearing
2018-08-28 08:27:45 +00:00
cache on close ( 2803 ) . or on a regular basis manually or with an extension .
[ 1 ] https : //en.wikipedia.org/wiki/HTTP_ETag#Tracking_using_ETags
[ 2 ] https : //robertheaton.com/2014/01/20/cookieless-user-tracking-for-douchebags/
2018-09-13 05:09:07 +00:00
[ 3 ] https : //www.grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache
[ 4 ] https : //github.com/ghacksuserjs/ghacks-user.js/wiki/4.2.4-Header-Editor
[ 5 ] https : //medium.com/@stoically/enhance-your-privacy-in-firefox-with-temporary-containers-33925cd6cd21
2018-08-28 08:27:45 +00:00
* * * /
2017-09-16 10:28:22 +12:00
user _pref ( "_user.js.parrot" , "1000 syntax error: the parrot's gone to meet 'is maker!" ) ;
2017-06-17 09:13:14 +02:00
/** CACHE ***/
/* 1001: disable disk cache ***/
user _pref ( "browser.cache.disk.enable" , false ) ;
user _pref ( "browser.cache.disk.capacity" , 0 ) ;
user _pref ( "browser.cache.disk.smart_size.enabled" , false ) ;
user _pref ( "browser.cache.disk.smart_size.first_run" , false ) ;
/ * 1 0 0 2 : d i s a b l e d i s k c a c h e f o r S S L p a g e s
* [ 1 ] http : //kb.mozillazine.org/Browser.cache.disk_cache_ssl ***/
user _pref ( "browser.cache.disk_cache_ssl" , false ) ;
/ * 1 0 0 3 : d i s a b l e m e m o r y c a c h e
* [ NOTE ] Not recommended due to performance issues * * * /
// user_pref("browser.cache.memory.enable", false);
2017-07-14 04:39:31 +12:00
// user_pref("browser.cache.memory.capacity", 0); // (hidden pref)
2017-06-17 09:13:14 +02:00
/ * 1 0 0 5 : d i s a b l e f a s t b a c k c a c h e
* To improve performance when pressing back / forward Firefox stores visited pages
* so they don ' t have to be re - parsed . This is not the same as memory cache .
* 0 = none , - 1 = auto ( that ' s minus 1 ) , or for other values see [ 1 ]
* [ NOTE ] Not recommended unless you know what you ' re doing
* [ 1 ] http : //kb.mozillazine.org/Browser.sessionhistory.max_total_viewers ***/
// user_pref("browser.sessionhistory.max_total_viewers", 0);
2018-01-17 16:40:39 +13:00
/ * 1 0 0 6 : d i s a b l e p e r m i s s i o n s m a n a g e r f r o m w r i t i n g t o d i s k [ R E S T A R T ]
2017-06-17 09:13:14 +02:00
* [ NOTE ] This means any permission changes are session only
2018-03-15 02:22:58 +13:00
* [ 1 ] https : //bugzilla.mozilla.org/967812 ***/
2017-06-17 09:13:14 +02:00
// user_pref("permissions.memory_only", true); // (hidden pref)
/* 1008: set DNS cache and expiration time (default 400 and 60, same as TBB) ***/
// user_pref("network.dnsCacheEntries", 400);
// user_pref("network.dnsCacheExpiration", 60);
/** SESSIONS & SESSION RESTORE ***/
/ * 1 0 2 0 : d i s a b l e t h e S e s s i o n R e s t o r e s e r v i c e c o m p l e t e l y
* [ WARNING ] [ SETUP ] This also disables the "Recently Closed Tabs" feature
* It does not affect "Recently Closed Windows" or any history . * * * /
user _pref ( "browser.sessionstore.max_tabs_undo" , 0 ) ;
user _pref ( "browser.sessionstore.max_windows_undo" , 0 ) ;
/ * 1 0 2 1 : d i s a b l e s t o r i n g e x t r a s e s s i o n d a t a
* extra session data contains contents of forms , scrollbar positions , cookies and POST data
* define on which sites to save extra session data :
* 0 = everywhere , 1 = unencrypted sites , 2 = nowhere * * * /
user _pref ( "browser.sessionstore.privacy_level" , 2 ) ;
/* 1022: disable resuming session from crash [SETUP] ***/
user _pref ( "browser.sessionstore.resume_from_crash" , false ) ;
/ * 1 0 2 3 : s e t t h e m i n i m u m i n t e r v a l b e t w e e n s e s s i o n s a v e o p e r a t i o n s - i n c r e a s i n g i t
* can help on older machines and some websites , as well as reducing writes , see [ 1 ]
* Default is 15000 ( 15 secs ) . Try 30000 ( 30 sec ) , 60000 ( 1 min ) etc
* [ WARNING ] This can also affect entries in the "Recently Closed Tabs" feature :
2017-07-25 05:15:37 +12:00
* i . e . the longer the interval the more chance a quick tab open / close won ' t be captured .
2017-06-17 09:13:14 +02:00
* This longer interval * may * affect history but we cannot replicate any history not recorded
2018-03-15 02:22:58 +13:00
* [ 1 ] https : //bugzilla.mozilla.org/1304389 ***/
2017-06-17 09:13:14 +02:00
user _pref ( "browser.sessionstore.interval" , 30000 ) ;
2018-09-09 20:46:35 +00:00
/ * 1 0 2 4 : d i s a b l e a u t o m a t i c F i r e f o x s t a r t a n d s e s s i o n r e s t o r e a f t e r r e b o o t [ W I N D O W S ] ( F F 6 2 + )
* [ 1 ] https : //bugzilla.mozilla.org/603903 ***/
user _pref ( "toolkit.winRegisterApplicationRestart" , false ) ;
2017-06-17 09:13:14 +02:00
/** FAVICONS ***/
/ * 1 0 3 0 : d i s a b l e f a v i c o n s i n s h o r t c u t s
* URL shortcuts use a cached randomly named . ico file which is stored in your
* profile / shortcutCache directory . The . ico remains after the shortcut is deleted .
* If set to false then the shortcuts use a generic Firefox icon * * * /
user _pref ( "browser.shell.shortcutFavicons" , false ) ;
/ * 1 0 3 1 : d i s a b l e f a v i c o n s i n t a b s a n d n e w b o o k m a r k s
2018-09-30 15:30:32 +00:00
* bookmark favicons are stored as data blobs in favicons . sqlite * * * /
2017-06-17 09:13:14 +02:00
// user_pref("browser.chrome.site_icons", false);
/* 1032: disable favicons in web notifications ***/
2018-02-19 11:49:40 +01:00
user _pref ( "alerts.showFavicons" , false ) ; // default: false
2017-06-17 09:13:14 +02:00
/ * * * 1 2 0 0 : H T T P S ( S S L / T L S / O C S P / C E R T S / H S T S / H P K P / C I P H E R S )
Note that your cipher and other settings can be used server side as a fingerprint attack
vector , see [ 1 ] ( It ' s quite technical but the first part is easy to understand
and you can stop reading when you reach the second section titled "Enter Bro" )
2017-09-16 06:20:00 +12:00
Option 1 : Use Firefox defaults for the 1260 ' s items ( item 1260 default for SHA - 1 , is local
only anyway ) . There is nothing * weak * about Firefox ' s defaults , but Mozilla ( and
other browsers ) will always lag for fear of breakage and upset end - users
Option 2 : Disable the ciphers in 1261 , 1262 and 1263. These shouldn ' t break anything .
Optionally , disable the ciphers in 1264.
2017-06-17 09:13:14 +02:00
[ 1 ] https : //www.securityartwork.es/2017/02/02/tls-client-fingerprinting-with-bro/
2018-08-28 07:57:21 +00:00
* * * /
2017-09-16 10:28:22 +12:00
user _pref ( "_user.js.parrot" , "1200 syntax error: the parrot's a stiff!" ) ;
2017-06-17 09:13:14 +02:00
/** SSL (Secure Sockets Layer) / TLS (Transport Layer Security) ***/
2018-10-16 11:57:32 +00:00
/ * 1 2 0 1 : d i s a b l e o l d S S L / T L S " i n s e c u r e " r e n e g o t i a t i o n ( v u l n e r a b l e t o a M i T M a t t a c k )
* [ WARNING ] < 2 % of secure sites do NOT support the newer "secure" renegotiation , see [ 2 ]
* [ 1 ] https : //wiki.mozilla.org/Security:Renegotiation
* [ 2 ] https : //www.ssllabs.com/ssl-pulse/ ***/
user _pref ( "security.ssl.require_safe_negotiation" , true ) ;
2017-06-17 09:13:14 +02:00
/ * 1 2 0 2 : c o n t r o l T L S v e r s i o n s w i t h m i n a n d m a x
* 1 = min version of TLS 1.0 , 2 = min version of TLS 1.1 , 3 = min version of TLS 1.2 etc
2017-07-10 06:22:52 +12:00
* [ NOTE ] Jul - 2017 : Telemetry indicates approx 2 % of TLS web traffic uses 1.0 or 1.1
2017-07-28 21:15:25 +02:00
* [ WARNING ] If you get an "SSL_ERROR_NO_CYPHER_OVERLAP" error , temporarily
2017-07-10 06:22:52 +12:00
* set a lower value for 'security.tls.version.min' in about : config
2017-06-17 09:13:14 +02:00
* [ 1 ] http : //kb.mozillazine.org/Security.tls.version.*
2017-07-10 06:22:52 +12:00
* [ 2 ] https : //www.ssl.com/how-to/turn-off-ssl-3-0-and-tls-1-0-in-your-browser/
* [ 2 ] archived : https : //archive.is/hY2Mm ***/
2017-07-10 06:26:55 +12:00
user _pref ( "security.tls.version.min" , 3 ) ;
2017-06-17 09:13:14 +02:00
user _pref ( "security.tls.version.max" , 4 ) ; // 4 = allow up to and including TLS 1.3
/ * 1 2 0 3 : d i s a b l e S S L s e s s i o n t r a c k i n g ( F F 3 6 + )
* SSL Session IDs speed up HTTPS connections ( no need to renegotiate ) and last for 48 hrs .
* Since the ID is unique , web servers can ( and do ) use it for tracking . If set to true ,
* this disables sending SSL Session IDs and TLS Session Tickets to prevent session tracking
* [ 1 ] https : //tools.ietf.org/html/rfc5077
2018-03-15 02:22:58 +13:00
* [ 2 ] https : //bugzilla.mozilla.org/967977 ***/
2017-06-17 09:13:14 +02:00
user _pref ( "security.ssl.disable_session_identifiers" , true ) ; // (hidden pref)
/ * 1 2 0 4 : d i s a b l e S S L E r r o r R e p o r t i n g
2017-08-30 17:07:43 +12:00
* [ 1 ] https : //firefox-source-docs.mozilla.org/browser/base/sslerrorreport/preferences.html ***/
2017-06-17 09:13:14 +02:00
user _pref ( "security.ssl.errorReporting.automatic" , false ) ;
user _pref ( "security.ssl.errorReporting.enabled" , false ) ;
user _pref ( "security.ssl.errorReporting.url" , "" ) ;
2017-08-18 13:58:30 +12:00
/ * 1 2 0 5 : d i s a b l e T L S 1 . 3 0 - R T T ( r o u n d - t r i p t i m e ) ( F F 5 1 + )
* [ 1 ] https : //github.com/tlswg/tls13-spec/issues/1001
* [ 2 ] https : //blog.cloudflare.com/tls-1-3-overview-and-q-and-a/ ***/
user _pref ( "security.tls.enable_0rtt_data" , false ) ; // (FF55+ default true)
2018-08-12 03:11:23 +00:00
2017-07-07 00:09:54 +12:00
/ * * O C S P ( O n l i n e C e r t i f i c a t e S t a t u s P r o t o c o l )
# Required reading [ # ] https : //scotthelme.co.uk/revocation-is-broken/ ***/
2017-06-17 09:13:14 +02:00
/ * 1 2 1 0 : e n a b l e O C S P S t a p l i n g
* [ 1 ] https : //blog.mozilla.org/security/2013/07/29/ocsp-stapling-in-firefox/ ***/
user _pref ( "security.ssl.enable_ocsp_stapling" , true ) ;
2018-01-16 06:51:21 +13:00
/ * 1 2 1 1 : c o n t r o l w h e n t o u s e O C S P f e t c h i n g ( t o c o n f i r m c u r r e n t v a l i d i t y o f c e r t i f i c a t e s )
2018-01-12 05:26:42 +13:00
* 0 = disabled , 1 = enabled ( default ) , 2 = enabled for EV certificates only
2017-06-17 09:13:14 +02:00
* OCSP ( non - stapled ) leaks information about the sites you visit to the CA ( cert authority )
* It ' s a trade - off between security ( checking ) and privacy ( leaking info to the CA )
2018-01-12 05:26:42 +13:00
* [ NOTE ] This pref only controls OCSP fetching and does not affect OCSP stapling
2017-06-17 09:13:14 +02:00
* [ 1 ] https : //en.wikipedia.org/wiki/Ocsp ***/
user _pref ( "security.OCSP.enabled" , 1 ) ;
2018-01-16 06:51:21 +13:00
/ * 1 2 1 2 : s e t O C S P f e t c h f a i l u r e s ( n o n - s t a p l e d , s e e 1 2 1 1 ) t o h a r d - f a i l
2018-01-12 05:26:42 +13:00
* When a CA cannot be reached to validate a cert , Firefox just continues the connection ( = soft - fail )
* Setting this pref to true tells Firefox to instead terminate the connection ( = hard - fail )
2018-01-16 06:51:21 +13:00
* It is pointless to soft - fail when an OCSP fetch fails : you cannot confirm a cert is still valid ( it
* could have been revoked ) and / or you could be under attack ( e . g . malicious blocking of OCSP servers )
2018-01-12 05:26:42 +13:00
* [ 1 ] https : //blog.mozilla.org/security/2013/07/29/ocsp-stapling-in-firefox/
* [ 2 ] https : //www.imperialviolet.org/2014/04/19/revchecking.html ***/
2017-07-08 05:12:52 +12:00
user _pref ( "security.OCSP.require" , true ) ;
2018-08-12 03:11:23 +00:00
2017-06-17 09:13:14 +02:00
/** CERTS / HSTS (HTTP Strict Transport Security) / HPKP (HTTP Public Key Pinning) ***/
/ * 1 2 2 0 : d i s a b l e W i n d o w s 8 . 1 ' s M i c r o s o f t F a m i l y S a f e t y c e r t [ W I N D O W S ] ( F F 5 0 + )
* 0 = disable detecting Family Safety mode and importing the root
* 1 = only attempt to detect Family Safety mode ( don ' t import the root )
* 2 = detect Family Safety mode and import the root
* [ 1 ] https : //trac.torproject.org/projects/tor/ticket/21686 ***/
user _pref ( "security.family_safety.mode" , 0 ) ;
2018-01-17 16:40:39 +13:00
/ * 1 2 2 1 : d i s a b l e i n t e r m e d i a t e c e r t i f i c a t e c a c h i n g ( f i n g e r p r i n t i n g a t t a c k v e c t o r ) [ R E S T A R T ]
2017-06-17 09:13:14 +02:00
* [ NOTE ] This may be better handled under FPI ( ticket 1323644 , part of Tor Uplift )
* [ WARNING ] This affects login / cert / key dbs . The effect is all credentials are session - only .
* Saved logins and passwords are not available . Reset the pref and restart to return them .
2017-09-15 14:44:05 +02:00
* [ TEST ] https : //fiprinca.0x90.eu/poc/
2018-03-15 02:22:58 +13:00
* [ 1 ] https : //bugzilla.mozilla.org/1334485 - related bug
* [ 2 ] https : //bugzilla.mozilla.org/1216882 - related bug (see comment 9) ***/
2017-06-17 09:13:14 +02:00
// user_pref("security.nocertdb", true); // (hidden pref)
/ * 1 2 2 2 : e n f o r c e s t r i c t p i n n i n g
* PKP ( Public Key Pinning ) 0 = disabled 1 = allow user MiTM ( such as your antivirus ) , 2 = strict
* [ WARNING ] If you rely on an AV ( antivirus ) to protect your web browsing
* by inspecting ALL your web traffic , then leave at current default = 1
* [ 1 ] https : //trac.torproject.org/projects/tor/ticket/16206 ***/
user _pref ( "security.cert_pinning.enforcement_level" , 2 ) ;
2018-08-12 03:11:23 +00:00
2017-06-17 09:13:14 +02:00
/** MIXED CONTENT ***/
/ * 1 2 4 0 : d i s a b l e i n s e c u r e a c t i v e c o n t e n t o n h t t p s p a g e s - m i x e d c o n t e n t
* [ 1 ] https : //trac.torproject.org/projects/tor/ticket/21323 ***/
2018-09-12 22:17:56 +00:00
user _pref ( "security.mixed_content.block_active_content" , true ) ; // default: true
2018-01-05 09:02:59 +13:00
/* 1241: disable insecure passive content (such as images) on https pages - mixed context ***/
user _pref ( "security.mixed_content.block_display_content" , true ) ;
2018-08-12 03:11:23 +00:00
2017-06-17 09:13:14 +02:00
/** CIPHERS [see the section 1200 intro] ***/
/ * 1 2 6 0 : d i s a b l e o r l i m i t S H A - 1
* 0 = all SHA1 certs are allowed
* 1 = all SHA1 certs are blocked ( including perfectly valid ones from 2015 and earlier )
* 2 = deprecated option that now maps to 1
* 3 = only allowed for locally - added roots ( e . g . anti - virus )
* 4 = only allowed for locally - added roots or for certs in 2015 and earlier
2017-07-24 06:50:55 +12:00
* [ WARNING ] When disabled , some man - in - the - middle devices ( e . g . security scanners and
2017-06-17 09:13:14 +02:00
* antivirus products , may fail to connect to HTTPS sites . SHA - 1 is * almost * obsolete .
* [ 1 ] https : //blog.mozilla.org/security/2016/10/18/phasing-out-sha-1-on-the-public-web/ ***/
user _pref ( "security.pki.sha1_enforcement_level" , 1 ) ;
/ * 1 2 6 1 : d i s a b l e 3 D E S ( e f f e c t i v e k e y s i z e < 1 2 8 )
* [ 1 ] https : //en.wikipedia.org/wiki/3des#Security
* [ 2 ] http : //en.citizendium.org/wiki/Meet-in-the-middle_attack
2017-08-30 17:07:43 +12:00
* [ 3 ] https : //www-archive.mozilla.org/projects/security/pki/nss/ssl/fips-ssl-ciphersuites.html ***/
2017-09-16 06:20:00 +12:00
// user_pref("security.ssl3.rsa_des_ede3_sha", false);
2017-06-17 09:13:14 +02:00
/* 1262: disable 128 bits ***/
2017-09-16 06:20:00 +12:00
// user_pref("security.ssl3.ecdhe_ecdsa_aes_128_sha", false);
// user_pref("security.ssl3.ecdhe_rsa_aes_128_sha", false);
2017-06-17 09:13:14 +02:00
/ * 1 2 6 3 : d i s a b l e D H E ( D i f f i e - H e l l m a n K e y E x c h a n g e )
* [ WARNING ] May break obscure sites , but not major sites , which should support ECDH over DHE
* [ 1 ] https : //www.eff.org/deeplinks/2015/10/how-to-protect-yourself-from-nsa-attacks-1024-bit-DH ***/
2017-09-16 06:20:00 +12:00
// user_pref("security.ssl3.dhe_rsa_aes_128_sha", false);
// user_pref("security.ssl3.dhe_rsa_aes_256_sha", false);
2017-06-17 09:13:14 +02:00
/ * 1 2 6 4 : d i s a b l e t h e r e m a i n i n g n o n - m o d e r n c i p h e r s u i t e s a s o f F F 5 2
* [ NOTE ] Commented out because it still breaks too many sites * * * /
// user_pref("security.ssl3.rsa_aes_128_sha", false);
// user_pref("security.ssl3.rsa_aes_256_sha", false);
2018-08-12 03:11:23 +00:00
2017-06-17 09:13:14 +02:00
/** UI (User Interface) ***/
2018-10-16 12:01:42 +00:00
/ * 1 2 7 0 : d i s p l a y w a r n i n g ( r e d p a d l o c k ) f o r " b r o k e n s e c u r i t y " ( s e e 1 2 0 1 )
2017-06-17 09:13:14 +02:00
* [ 1 ] https : //wiki.mozilla.org/Security:Renegotiation ***/
user _pref ( "security.ssl.treat_unsafe_negotiation_as_broken" , true ) ;
/ * 1 2 7 1 : c o n t r o l " A d d S e c u r i t y E x c e p t i o n " d i a l o g o n S S L w a r n i n g s
2018-01-22 18:49:39 +13:00
* 0 = do neither 1 = pre - populate url 2 = pre - populate url + pre - fetch cert ( default )
2017-06-17 09:13:14 +02:00
* [ 1 ] https : //github.com/pyllyukko/user.js/issues/210 ***/
user _pref ( "browser.ssl_override_behavior" , 1 ) ;
/ * 1 2 7 2 : d i s p l a y a d v a n c e d i n f o r m a t i o n o n I n s e c u r e C o n n e c t i o n w a r n i n g p a g e s
* only works when it ' s possible to add an exception
2017-07-25 05:15:37 +12:00
* i . e . it doesn ' t work for HSTS discrepancies ( https : //subdomain.preloaded-hsts.badssl.com/)
2017-06-17 09:13:14 +02:00
* [ TEST ] https : //expired.badssl.com/ ***/
user _pref ( "browser.xul.error_pages.expert_bad_cert" , true ) ;
2018-04-05 18:57:08 +00:00
/* 1273: display "insecure" icon (FF59+) and "Not Secure" text (FF60+) on HTTP sites ***/
2017-12-07 14:08:23 +13:00
user _pref ( "security.insecure_connection_icon.enabled" , true ) ; // all windows
2018-04-05 18:57:08 +00:00
user _pref ( "security.insecure_connection_text.enabled" , true ) ;
2017-12-07 14:08:23 +13:00
// user_pref("security.insecure_connection_icon.pbmode.enabled", true); // private windows only
2018-04-05 18:57:08 +00:00
// user_pref("security.insecure_connection_text.pbmode.enabled", true);
2017-06-17 09:13:14 +02:00
/*** 1400: FONTS ***/
2017-09-16 10:28:22 +12:00
user _pref ( "_user.js.parrot" , "1400 syntax error: the parrot's bereft of life!" ) ;
2017-06-17 09:13:14 +02:00
/ * 1 4 0 1 : d i s a b l e w e b s i t e s c h o o s i n g f o n t s ( 0 = b l o c k , 1 = a l l o w )
* If you disallow fonts , this drastically limits / reduces font
* enumeration ( by JS ) which is a high entropy fingerprinting vector .
2018-03-27 08:49:39 +13:00
* [ SETTING ] General > Language and Appearance > Advanced > Allow pages to choose ...
2017-06-17 09:13:14 +02:00
* [ SETUP ] Disabling fonts can uglify the web a fair bit . * * * /
user _pref ( "browser.display.use_document_fonts" , 0 ) ;
2017-09-19 04:54:52 +12:00
/ * 1 4 0 2 : s e t m o r e l e g i b l e d e f a u l t f o n t s [ S E T U P ]
2018-03-27 08:49:39 +13:00
* [ SETTING ] General > Language and Appearance > Fonts & Colors > Advanced > Serif | Sans - serif | Monospace
2017-09-19 04:54:52 +12:00
* [ NOTE ] Example below for Windows / Western only * * * /
// user_pref("font.name.serif.x-unicode", "Georgia");
2018-03-26 19:44:15 +00:00
// user_pref("font.name.serif.x-western", "Georgia"); // default: Times New Roman
2017-09-19 04:54:52 +12:00
// user_pref("font.name.sans-serif.x-unicode", "Arial");
2018-03-26 19:44:15 +00:00
// user_pref("font.name.sans-serif.x-western", "Arial"); // default: Arial
2017-09-19 04:54:52 +12:00
// user_pref("font.name.monospace.x-unicode", "Lucida Console");
2018-03-26 19:44:15 +00:00
// user_pref("font.name.monospace.x-western", "Lucida Console"); // default: Courier New
2018-10-20 01:35:37 +00:00
/ * 1 4 0 3 : d i s a b l e i c o n f o n t s ( g l y p h s ) ( F F 4 1 ) a n d l o c a l f a l l b a c k r e n d e r i n g
* [ 1 ] https : //bugzilla.mozilla.org/789788
* [ 2 ] https : //trac.torproject.org/projects/tor/ticket/8455 ***/
// user_pref("gfx.downloadable_fonts.enabled", false);
// user_pref("gfx.downloadable_fonts.fallback_delay", -1);
2017-09-19 04:54:52 +12:00
/ * 1 4 0 4 : d i s a b l e r e n d e r i n g o f S V G O p e n T y p e f o n t s
2017-06-17 09:13:14 +02:00
* [ 1 ] https : //wiki.mozilla.org/SVGOpenTypeFonts - iSECPartnersReport recommends to disable this ***/
user _pref ( "gfx.font_rendering.opentype_svg.enabled" , false ) ;
2018-01-31 13:57:34 +00:00
/* 1405: disable WOFF2 (Web Open Font Format) (FF35+) ***/
2017-06-17 09:13:14 +02:00
user _pref ( "gfx.downloadable_fonts.woff2.enabled" , false ) ;
/ * 1 4 0 6 : d i s a b l e C S S F o n t L o a d i n g A P I
* [ SETUP ] Disabling fonts can uglify the web a fair bit . * * * /
user _pref ( "layout.css.font-loading-api.enabled" , false ) ;
2018-01-17 16:40:39 +13:00
/ * 1 4 0 7 : d i s a b l e s p e c i a l u n d e r l i n e h a n d l i n g f o r a f e w f o n t s w h i c h y o u w i l l p r o b a b l y n e v e r u s e [ R E S T A R T ]
2018-02-07 00:49:58 +00:00
* Any of these fonts on your system can be enumerated for fingerprinting .
2017-06-17 09:13:14 +02:00
* [ 1 ] http : //kb.mozillazine.org/Font.blacklist.underline_offset ***/
user _pref ( "font.blacklist.underline_offset" , "" ) ;
/ * 1 4 0 8 : d i s a b l e g r a p h i t e w h i c h F F 4 9 t u r n e d b a c k o n b y d e f a u l t
2017-06-20 03:25:31 +12:00
* In the past it had security issues . Update : This continues to be the case , see [ 1 ]
2017-08-31 17:27:04 +12:00
* [ 1 ] https : //www.mozilla.org/security/advisories/mfsa2017-15/#CVE-2017-7778 ***/
2017-06-17 09:13:14 +02:00
user _pref ( "gfx.font_rendering.graphite.enabled" , false ) ;
2018-01-17 16:40:39 +13:00
/ * 1 4 0 9 : l i m i t s y s t e m f o n t e x p o s u r e t o a w h i t e l i s t ( F F 5 2 + ) [ S E T U P ] [ R E S T A R T ]
2017-06-17 09:13:14 +02:00
* If the whitelist is empty , then whitelisting is considered disabled and all fonts are allowed .
* [ NOTE ] Creating your own probably highly - unique whitelist will raise your entropy . If
* you block sites choosing fonts in 1401 , this preference is irrelevant . In future ,
2017-09-14 15:57:42 +12:00
* privacy . resistFingerprinting ( see 4500 ) may cover this , and 1401 can be relaxed .
2018-03-15 02:22:58 +13:00
* [ 1 ] https : //bugzilla.mozilla.org/1121643 ***/
2017-06-17 09:13:14 +02:00
// user_pref("font.system.whitelist", ""); // (hidden pref)
2018-02-06 20:09:11 +01:00
/*** 1600: HEADERS / REFERERS
2018-02-06 23:50:30 +00:00
Only * cross domain * referers need controlling and XOriginPolicy ( 1603 ) is perfect for that . Thus we enforce
the default values for 1601 , 1602 , 1605 and 1606 to minimize breakage , and only tweak 1603 and 1604.
2018-02-06 20:09:11 +01:00
Our default settings provide the best balance between protection and amount of breakage .
To harden it a bit more you can set XOriginPolicy ( 1603 ) to 2 ( + optionally 1604 to 1 or 2 ) .
2018-04-21 16:22:04 +00:00
To fix broken sites ( including your modem / router ) , temporarily set XOriginPolicy = 0 and XOriginTrimmingPolicy = 2 in about : config ,
2018-03-17 02:56:36 +00:00
use the site and then change the values back . If you visit those sites regularly ( e . g . Vimeo ) , use an extension .
2017-06-17 09:13:14 +02:00
full URI : https : //example.com:8888/foo/bar.html?id=1234
2018-11-04 14:44:20 +00:00
scheme + host + port + path : https : //example.com:8888/foo/bar.html
2017-06-17 09:13:14 +02:00
scheme + host + port : https : //example.com:8888
# Required reading [ # ] https : //feeding.cloud.geek.nz/posts/tweaking-referrer-for-privacy-in-firefox/
2018-08-28 07:57:21 +00:00
* * * /
2017-09-16 10:28:22 +12:00
user _pref ( "_user.js.parrot" , "1600 syntax error: the parrot rests in peace!" ) ;
2017-06-17 09:13:14 +02:00
/ * 1 6 0 1 : A L L : c o n t r o l w h e n i m a g e s / l i n k s s e n d a r e f e r e r
2018-02-06 20:09:11 +01:00
* 0 = never , 1 = send only when links are clicked , 2 = for links and images ( default ) * * * /
2017-06-17 09:13:14 +02:00
user _pref ( "network.http.sendRefererHeader" , 2 ) ;
/ * 1 6 0 2 : A L L : c o n t r o l t h e a m o u n t o f i n f o r m a t i o n t o s e n d
2018-11-04 14:44:20 +00:00
* 0 = send full URI ( default ) , 1 = scheme + host + port + path , 2 = scheme + host + port * * * /
2017-06-17 09:13:14 +02:00
user _pref ( "network.http.referer.trimmingPolicy" , 0 ) ;
/ * 1 6 0 3 : C R O S S O R I G I N : c o n t r o l w h e n t o s e n d a r e f e r e r [ S E T U P ]
2018-02-06 20:09:11 +01:00
* 0 = always ( default ) , 1 = only if base domains match , 2 = only if hosts match * * * /
2017-06-17 09:13:14 +02:00
user _pref ( "network.http.referer.XOriginPolicy" , 1 ) ;
/ * 1 6 0 4 : C R O S S O R I G I N : c o n t r o l t h e a m o u n t o f i n f o r m a t i o n t o s e n d ( F F 5 2 + )
2018-11-04 14:44:20 +00:00
* 0 = send full URI ( default ) , 1 = scheme + host + port + path , 2 = scheme + host + port * * * /
2017-06-17 09:13:14 +02:00
user _pref ( "network.http.referer.XOriginTrimmingPolicy" , 0 ) ;
/ * 1 6 0 5 : A L L : d i s a b l e s p o o f i n g a r e f e r e r
2018-02-06 23:57:34 +00:00
* [ WARNING ] Spoofing effectively disables the anti - CSRF ( Cross - Site Request Forgery ) protections that some sites may rely on * * * /
2017-06-17 09:13:14 +02:00
user _pref ( "network.http.referer.spoofSource" , false ) ;
2018-02-06 20:09:11 +01:00
/ * 1 6 0 6 : A L L : s e t t h e d e f a u l t R e f e r r e r P o l i c y
* 0 = no - referer , 1 = same - origin , 2 = strict - origin - when - cross - origin , 3 = no - referrer - when - downgrade
2017-06-17 09:13:14 +02:00
* [ NOTE ] This is only a default , it can be overridden by a site - controlled Referrer Policy
* [ 1 ] https : //www.w3.org/TR/referrer-policy/
2018-02-06 20:09:11 +01:00
* [ 2 ] https : //developer.mozilla.org/docs/Web/HTTP/Headers/Referrer-Policy
* [ 3 ] https : //blog.mozilla.org/security/2018/01/31/preventing-data-leaks-by-stripping-path-information-in-http-referrers/ ***/
user _pref ( "network.http.referer.defaultPolicy" , 3 ) ; // (FF59+) default: 3
user _pref ( "network.http.referer.defaultPolicy.pbmode" , 2 ) ; // (FF59+) default: 2
2017-06-17 09:13:14 +02:00
/ * 1 6 0 7 : T O R : h i d e ( n o t s p o o f ) r e f e r r e r w h e n l e a v i n g a . o n i o n d o m a i n ( F F 5 4 + )
* [ NOTE ] Firefox cannot access . onion sites by default . We recommend you use
* TBB ( Tor Browser Bundle ) which is specifically designed for the dark web
2018-03-15 02:22:58 +13:00
* [ 1 ] https : //bugzilla.mozilla.org/1305144 ***/
2017-06-17 09:13:14 +02:00
user _pref ( "network.http.referer.hideOnionSource" , true ) ;
2018-05-29 19:06:06 +02:00
/ * 1 6 1 0 : A L L : e n a b l e t h e D N T ( D o N o t T r a c k ) H T T P h e a d e r
2018-03-27 08:49:39 +13:00
* [ SETTING ] Privacy & Security > Tracking Protecting > Send websites a "Do Not Track" ...
2018-05-29 19:06:06 +02:00
* [ NOTE ] DNT is enforced with TP ( see 0420 ) regardless of this pref * * * /
user _pref ( "privacy.donottrackheader.enabled" , true ) ;
2017-06-17 09:13:14 +02:00
/ * * * 1 7 0 0 : C O N T A I N E R S [ S E T U P ]
[ 1 ] https : //support.mozilla.org/kb/containers-experiment
[ 2 ] https : //wiki.mozilla.org/Security/Contextual_Identity_Project/Containers
[ 3 ] https : //github.com/mozilla/testpilot-containers
* * * /
2017-09-16 10:28:22 +12:00
user _pref ( "_user.js.parrot" , "1700 syntax error: the parrot's bit the dust!" ) ;
2017-10-02 09:32:27 +13:00
/ * 1 7 0 1 : e n a b l e C o n t a i n e r T a b s s e t t i n g i n p r e f e r e n c e s ( s e e 1 7 0 2 ) ( F F 5 0 + )
2018-03-15 02:22:58 +13:00
* [ 1 ] https : //bugzilla.mozilla.org/1279029 ***/
2017-06-17 09:13:14 +02:00
// user_pref("privacy.userContext.ui.enabled", true);
/ * 1 7 0 2 : e n a b l e C o n t a i n e r T a b s ( F F 5 0 + )
2018-08-09 03:30:57 +00:00
* [ SETTING ] Privacy & Security > Tabs > Enable Container Tabs * * * /
2017-06-17 09:13:14 +02:00
// user_pref("privacy.userContext.enabled", true);
/* 1703: enable a private container for thumbnail loads (FF51+) ***/
2018-09-12 22:17:56 +00:00
// user_pref("privacy.usercontext.about_newtab_segregation.enabled", true); // default: true in FF61+
2017-06-17 09:13:14 +02:00
/ * 1 7 0 4 : s e t l o n g p r e s s b e h a v i o u r o n " + T a b " b u t t o n t o d i s p l a y c o n t a i n e r m e n u ( F F 5 3 + )
* 0 = disables long press , 1 = when clicked , the menu is shown
* 2 = the menu is shown after X milliseconds
* [ NOTE ] The menu does not contain a non - container tab option
2018-03-15 02:22:58 +13:00
* [ 1 ] https : //bugzilla.mozilla.org/1328756 ***/
2017-06-17 09:13:14 +02:00
// user_pref("privacy.userContext.longPressBehavior", 2);
/*** 1800: PLUGINS ***/
2017-09-16 10:28:22 +12:00
user _pref ( "_user.js.parrot" , "1800 syntax error: the parrot's pushing up daisies!" ) ;
2017-07-25 05:15:37 +12:00
/ * 1 8 0 1 : s e t d e f a u l t p l u g i n s t a t e ( i . e . n e w p l u g i n s o n d i s c o v e r y ) t o n e v e r a c t i v a t e
2017-06-17 09:13:14 +02:00
* 0 = disabled , 1 = ask to activate , 2 = active - you can override individual plugins * * * /
user _pref ( "plugin.default.state" , 0 ) ;
user _pref ( "plugin.defaultXpi.state" , 0 ) ;
/* 1802: enable click to play and set to 0 minutes ***/
user _pref ( "plugins.click_to_play" , true ) ;
user _pref ( "plugin.sessionPermissionNow.intervalInMinutes" , 0 ) ;
2018-09-05 16:59:04 +00:00
/ * 1 8 0 3 : d i s a b l e F l a s h p l u g i n ( A d d - o n s > P l u g i n s )
2018-05-23 17:05:29 +00:00
* 0 = deactivated , 1 = ask , 2 = enabled
* ESR52 . x is the last branch to * fully * support NPAPI , FF52 + stable only supports Flash
2018-09-05 16:59:04 +00:00
* [ NOTE ] You can still override individual sites via site permissions
2017-07-09 18:49:39 +02:00
* [ 1 ] https : //www.ghacks.net/2013/07/09/how-to-make-sure-that-a-firefox-plugin-never-activates-again/ ***/
2018-05-23 17:05:29 +00:00
user _pref ( "plugin.state.flash" , 0 ) ;
2017-06-17 09:13:14 +02:00
/ * 1 8 0 5 : d i s a b l e s c a n n i n g f o r p l u g i n s [ W I N D O W S ]
* [ 1 ] http : //kb.mozillazine.org/Plugin_scanning
* plid . all = whether to scan the directories specified in the Windows registry for PLIDs .
* Used to detect RealPlayer , Java , Antivirus etc , but since FF52 only covers Flash * * * /
user _pref ( "plugin.scan.plid.all" , false ) ;
/ * 1 8 2 0 : d i s a b l e a l l G M P ( G e c k o M e d i a P l u g i n s ) [ S E T U P ]
* [ 1 ] https : //wiki.mozilla.org/GeckoMediaPlugins ***/
user _pref ( "media.gmp-provider.enabled" , false ) ;
user _pref ( "media.gmp.trial-create.enabled" , false ) ;
2017-08-10 22:52:59 +12:00
user _pref ( "media.gmp-manager.url" , "data:text/plain," ) ;
user _pref ( "media.gmp-manager.url.override" , "data:text/plain," ) ; // (hidden pref)
user _pref ( "media.gmp-manager.updateEnabled" , false ) ; // disable local fallback (hidden pref)
2017-06-17 09:13:14 +02:00
/* 1825: disable widevine CDM (Content Decryption Module) [SETUP] ***/
user _pref ( "media.gmp-widevinecdm.visible" , false ) ;
user _pref ( "media.gmp-widevinecdm.enabled" , false ) ;
user _pref ( "media.gmp-widevinecdm.autoupdate" , false ) ;
2017-11-29 13:32:48 +13:00
/ * 1 8 3 0 : d i s a b l e a l l D R M c o n t e n t ( E M E : E n c r y p t i o n M e d i a E x t e n s i o n ) [ S E T U P ]
* [ 1 ] https : //www.eff.org/deeplinks/2017/10/drms-dead-canary-how-we-just-lost-web-what-we-learned-it-and-what-we-need-do-next ***/
2018-03-27 08:49:39 +13:00
user _pref ( "media.eme.enabled" , false ) ; // [SETTING] General>DRM Content>Play DRM-controlled content
user _pref ( "browser.eme.ui.enabled" , false ) ; // hides "Play DRM-controlled content" checkbox [RESTART]
2017-06-17 09:13:14 +02:00
/ * 1 8 4 0 : d i s a b l e t h e O p e n H 2 6 4 V i d e o C o d e c b y C i s c o t o " N e v e r A c t i v a t e "
* This is the bundled codec used for video chat in WebRTC * * * /
user _pref ( "media.gmp-gmpopenh264.enabled" , false ) ; // (hidden pref)
user _pref ( "media.gmp-gmpopenh264.autoupdate" , false ) ;
/*** 2000: MEDIA / CAMERA / MIC ***/
2017-09-16 10:28:22 +12:00
user _pref ( "_user.js.parrot" , "2000 syntax error: the parrot's snuffed it!" ) ;
2017-06-17 09:13:14 +02:00
/ * 2 0 0 1 : d i s a b l e W e b R T C ( W e b R e a l - T i m e C o m m u n i c a t i o n )
2017-08-30 17:07:43 +12:00
* [ 1 ] https : //www.privacytools.io/#webrtc ***/
2017-06-17 09:13:14 +02:00
user _pref ( "media.peerconnection.enabled" , false ) ;
user _pref ( "media.peerconnection.use_document_iceservers" , false ) ;
user _pref ( "media.peerconnection.video.enabled" , false ) ;
user _pref ( "media.peerconnection.identity.enabled" , false ) ;
user _pref ( "media.peerconnection.identity.timeout" , 1 ) ;
user _pref ( "media.peerconnection.turn.disable" , true ) ;
user _pref ( "media.peerconnection.ice.tcp" , false ) ;
user _pref ( "media.navigator.video.enabled" , false ) ; // video capability for WebRTC
/ * 2 0 0 2 : l i m i t W e b R T C I P l e a k s i f u s i n g W e b R T C
2018-03-15 02:22:58 +13:00
* [ 1 ] https : //bugzilla.mozilla.org/buglist.cgi?bug_id=1189041,1297416
* [ 2 ] https : //wiki.mozilla.org/Media/WebRTC/Privacy ***/
2017-06-17 09:13:14 +02:00
user _pref ( "media.peerconnection.ice.default_address_only" , true ) ; // (FF42-FF50)
user _pref ( "media.peerconnection.ice.no_host" , true ) ; // (FF51+)
/ * 2 0 1 0 : d i s a b l e W e b G L ( W e b G r a p h i c s L i b r a r y ) , f o r c e b a r e m i n i m u m f e a t u r e s e t i f u s e d & d i s a b l e W e b G L e x t e n s i o n s
2017-08-30 17:07:43 +12:00
* [ 1 ] https : //www.contextis.com/resources/blog/webgl-new-dimension-browser-exploitation/
2017-06-17 09:13:14 +02:00
* [ 2 ] https : //security.stackexchange.com/questions/13799/is-webgl-a-security-concern ***/
user _pref ( "webgl.disabled" , true ) ;
user _pref ( "pdfjs.enableWebGL" , false ) ;
user _pref ( "webgl.min_capability_mode" , true ) ;
user _pref ( "webgl.disable-extensions" , true ) ;
user _pref ( "webgl.disable-fail-if-major-performance-caveat" , true ) ;
/* 2012: disable two more webgl preferences (FF51+) ***/
user _pref ( "webgl.dxgl.enabled" , false ) ; // [WINDOWS]
user _pref ( "webgl.enable-webgl2" , false ) ;
/* 2022: disable screensharing ***/
user _pref ( "media.getusermedia.screensharing.enabled" , false ) ;
user _pref ( "media.getusermedia.browser.enabled" , false ) ;
user _pref ( "media.getusermedia.audiocapture.enabled" , false ) ;
2018-02-03 02:17:20 +00:00
/ * 2 0 2 4 : s e t a d e f a u l t p e r m i s s i o n f o r C a m e r a / M i c r o p h o n e ( F F 5 8 + )
* 0 = always ask ( default ) , 1 = allow , 2 = block
* [ SETTING ] to add site exceptions : Page Info > Permissions > Use the Camera / Microphone
2018-05-16 18:31:28 +02:00
* [ SETTING ] to manage site exceptions : Options > Privacy & Security > Permissions > Camera / Microphone > Settings * * * /
2018-02-03 02:17:20 +00:00
// user_pref("permissions.default.camera", 2);
// user_pref("permissions.default.microphone", 2);
2018-08-12 03:01:03 +00:00
/ * 2 0 2 6 : d i s a b l e c a n v a s c a p t u r e s t r e a m ( F F 4 1 + )
2017-08-31 17:27:04 +12:00
* [ 1 ] https : //developer.mozilla.org/docs/Web/API/HTMLCanvasElement/captureStream ***/
2017-06-17 09:13:14 +02:00
user _pref ( "canvas.capturestream.enabled" , false ) ;
2018-08-12 03:01:03 +00:00
/ * 2 0 2 7 : d i s a b l e c a m e r a i m a g e c a p t u r e ( F F 3 5 + )
2017-06-17 09:13:14 +02:00
* [ 1 ] https : //trac.torproject.org/projects/tor/ticket/16339 ***/
2018-08-12 03:01:03 +00:00
user _pref ( "dom.imagecapture.enabled" , false ) ; // default: false
/ * 2 0 2 8 : d i s a b l e o f f s c r e e n c a n v a s ( F F 4 4 + )
2017-08-31 17:27:04 +12:00
* [ 1 ] https : //developer.mozilla.org/docs/Web/API/OffscreenCanvas ***/
2018-08-12 03:01:03 +00:00
user _pref ( "gfx.offscreencanvas.enabled" , false ) ; // default: false
2018-10-23 15:45:31 +00:00
/ * 2 0 3 0 : d i s a b l e a u t o - p l a y o f H T M L 5 m e d i a ( F F 6 3 + )
* 0 = Allowed ( default ) , 1 = Blocked , 2 = Prompt
2017-06-17 09:13:14 +02:00
* [ WARNING ] This may break video playback on various sites * * * /
2018-10-23 15:45:31 +00:00
user _pref ( "media.autoplay.default" , 1 ) ;
2017-06-17 09:13:14 +02:00
/ * 2 0 3 1 : d i s a b l e a u d i o a u t o - p l a y i n n o n - a c t i v e t a b s ( F F 5 1 + )
2017-07-09 18:49:39 +02:00
* [ 1 ] https : //www.ghacks.net/2016/11/14/firefox-51-blocks-automatic-audio-playback-in-non-active-tabs/ ***/
2017-06-17 09:13:14 +02:00
user _pref ( "media.block-autoplay-until-in-foreground" , true ) ;
2018-03-26 19:04:31 +02:00
/*** 2200: WINDOW MEDDLING & LEAKS / POPUPS ***/
2017-09-16 10:28:22 +12:00
user _pref ( "_user.js.parrot" , "2200 syntax error: the parrot's 'istory!" ) ;
2018-03-26 19:04:31 +02:00
/ * 2 2 0 1 : p r e v e n t w e b s i t e s f r o m d i s a b l i n g n e w w i n d o w f e a t u r e s
2018-03-25 10:07:27 +00:00
* [ 1 ] http : //kb.mozillazine.org/Prevent_websites_from_disabling_new_window_features ***/
2017-06-17 09:13:14 +02:00
user _pref ( "dom.disable_window_open_feature.close" , true ) ;
2018-03-25 10:07:27 +00:00
user _pref ( "dom.disable_window_open_feature.location" , true ) ; // default: true
user _pref ( "dom.disable_window_open_feature.menubar" , true ) ;
2017-06-17 09:13:14 +02:00
user _pref ( "dom.disable_window_open_feature.minimizable" , true ) ;
2017-07-26 20:46:52 +12:00
user _pref ( "dom.disable_window_open_feature.personalbar" , true ) ; // bookmarks toolbar
2018-03-25 10:07:27 +00:00
user _pref ( "dom.disable_window_open_feature.resizable" , true ) ; // default: true
user _pref ( "dom.disable_window_open_feature.status" , true ) ; // status bar - default: true
2017-06-17 09:13:14 +02:00
user _pref ( "dom.disable_window_open_feature.titlebar" , true ) ;
2018-03-25 10:07:27 +00:00
user _pref ( "dom.disable_window_open_feature.toolbar" , true ) ;
2018-05-25 04:28:03 +00:00
/* 2202: prevent scripts moving and resizing open windows ***/
2018-03-25 10:07:27 +00:00
user _pref ( "dom.disable_window_move_resize" , true ) ;
2018-03-26 19:33:46 +00:00
/ * 2 2 0 3 : o p e n l i n k s t a r g e t i n g n e w w i n d o w s i n a n e w t a b i n s t e a d
2018-03-26 19:04:31 +02:00
* This stops malicious window sizes and some screen resolution leaks .
2018-03-26 23:08:20 +02:00
* You can still right - click a link and open in a new window .
2018-03-26 20:34:02 +13:00
* [ TEST ] https : //people.torproject.org/~gk/misc/entire_desktop.html
* [ 1 ] https : //trac.torproject.org/projects/tor/ticket/9881 ***/
2018-03-26 19:33:46 +00:00
user _pref ( "browser.link.open_newwindow" , 3 ) ;
2018-03-26 20:34:02 +13:00
user _pref ( "browser.link.open_newwindow.restriction" , 0 ) ;
2018-03-26 19:04:31 +02:00
/ * 2 2 0 4 : d i s a b l e F u l l s c r e e n A P I t o p r e v e n t s c r e e n - r e s o l u t i o n l e a k s [ S E T U P ]
2018-03-26 23:08:20 +02:00
* [ NOTE ] You can still manually toggle the browser ' s fullscreen state ( F11 ) ,
2018-03-26 20:34:02 +13:00
* but this pref will disable embedded video / game fullscreen controls , e . g . youtube
* [ TEST ] https : //developer.mozilla.org/samples/domref/fullscreen.html ***/
user _pref ( "full-screen-api.enabled" , false ) ;
2018-03-26 18:01:30 +02:00
/ * 2 2 1 0 : b l o c k p o p u p w i n d o w s
2018-08-09 03:30:57 +00:00
* [ SETTING ] Privacy & Security > Permissions > Block pop - up windows * * * /
2018-03-26 20:34:02 +13:00
user _pref ( "dom.disable_open_during_load" , true ) ;
2018-03-26 18:01:30 +02:00
/* 2211: set max popups from a single non-click event - default is 20! ***/
2018-03-26 20:34:02 +13:00
user _pref ( "dom.popup_maximum" , 3 ) ;
2018-03-26 18:01:30 +02:00
/ * 2 2 1 2 : l i m i t e v e n t s t h a t c a n c a u s e a p o p u p
2018-03-26 20:34:02 +13:00
* default is "change click dblclick mouseup pointerup notificationclick reset submit touchend"
* [ 1 ] http : //kb.mozillazine.org/Dom.popup_allowed_events ***/
user _pref ( "dom.popup_allowed_events" , "click dblclick" ) ;
2017-06-17 09:13:14 +02:00
/ * * * 2 3 0 0 : W E B W O R K E R S [ S E T U P ]
2017-07-25 05:15:37 +12:00
A worker is a JS "background task" running in a global context , i . e . it is different from
2017-06-17 09:13:14 +02:00
the current window . Workers can spawn new workers ( must be the same origin & scheme ) ,
2017-10-31 20:17:26 +13:00
including service and shared workers . Shared workers can be utilized by multiple scripts and
communicate between browsing contexts ( windows / tabs / iframes ) and can even control your cache .
2017-06-17 09:13:14 +02:00
2018-06-20 05:05:48 +00:00
[ WARNING ] Disabling "web workers" might break sites
2018-05-04 16:56:14 +00:00
[ UPDATE ] uMatrix 1.2 . 0 + allows a per - scope control for workers ( 2301 - deprecated ) and service workers ( 2302 )
2018-01-06 12:09:30 +13:00
# Required reading [ # ] https : //github.com/gorhill/uMatrix/releases/tag/1.2.0
2017-06-17 09:13:14 +02:00
2017-08-31 17:27:04 +12:00
[ 1 ] Web Workers : https : //developer.mozilla.org/docs/Web/API/Web_Workers_API
[ 2 ] Worker : https : //developer.mozilla.org/docs/Web/API/Worker
[ 3 ] Service Worker : https : //developer.mozilla.org/docs/Web/API/Service_Worker_API
[ 4 ] SharedWorker : https : //developer.mozilla.org/docs/Web/API/SharedWorker
[ 5 ] ChromeWorker : https : //developer.mozilla.org/docs/Web/API/ChromeWorker
[ 6 ] Notifications : https : //support.mozilla.org/questions/1165867#answer-981820
2018-08-28 07:57:21 +00:00
* * * /
2017-09-16 10:28:22 +12:00
user _pref ( "_user.js.parrot" , "2300 syntax error: the parrot's off the twig!" ) ;
2017-06-17 09:13:14 +02:00
/ * 2 3 0 2 : d i s a b l e s e r v i c e w o r k e r s
* Service workers essentially act as proxy servers that sit between web apps , and the browser
* and network , are event driven , and can control the web page / site it is associated with ,
* intercepting and modifying navigation and resource requests , and caching resources .
* [ NOTE ] Service worker APIs are hidden ( in Firefox ) and cannot be used when in PB mode .
* [ NOTE ] Service workers only run over HTTPS . Service Workers have no DOM access . * * * /
user _pref ( "dom.serviceWorkers.enabled" , false ) ;
/ * 2 3 0 4 : d i s a b l e w e b n o t i f i c a t i o n s
2017-08-31 17:27:04 +12:00
* [ 1 ] https : //developer.mozilla.org/docs/Web/API/Notifications_API ***/
2018-02-03 03:56:16 +00:00
user _pref ( "dom.webnotifications.enabled" , false ) ; // (FF22+)
user _pref ( "dom.webnotifications.serviceworker.enabled" , false ) ; // (FF44+)
/ * 2 3 0 5 : s e t a d e f a u l t p e r m i s s i o n f o r N o t i f i c a t i o n s ( s e e 2 3 0 4 ) ( F F 5 8 + )
* [ SETTING ] to add site exceptions : Page Info > Permissions > Receive Notifications
2018-05-16 18:31:28 +02:00
* [ SETTING ] to manage site exceptions : Options > Privacy & Security > Permissions > Notifications > Settings * * * /
2018-02-03 03:56:16 +00:00
// user_pref("permissions.default.desktop-notification", 2); // 0=always ask (default), 1=allow, 2=block
/ * 2 3 0 6 : d i s a b l e p u s h n o t i f i c a t i o n s ( F F 4 4 + )
2017-06-17 09:13:14 +02:00
* web apps can receive messages pushed to them from a server , whether or
* not the web app is in the foreground , or even currently loaded
2017-08-31 17:27:04 +12:00
* [ 1 ] https : //developer.mozilla.org/docs/Web/API/Push_API ***/
2017-06-17 09:13:14 +02:00
user _pref ( "dom.push.enabled" , false ) ;
user _pref ( "dom.push.connection.enabled" , false ) ;
user _pref ( "dom.push.serverURL" , "" ) ;
user _pref ( "dom.push.userAgentID" , "" ) ;
2017-07-24 06:50:55 +12:00
/*** 2400: DOM (DOCUMENT OBJECT MODEL) & JAVASCRIPT ***/
2017-09-16 10:28:22 +12:00
user _pref ( "_user.js.parrot" , "2400 syntax error: the parrot's kicked the bucket!" ) ;
2018-03-25 09:53:52 +00:00
/ * 2 4 0 1 : d i s a b l e w e b s i t e c o n t r o l o v e r b r o w s e r r i g h t - c l i c k c o n t e x t m e n u
2018-03-26 18:01:30 +02:00
* [ NOTE ] Shift - Right - Click will always bring up the browser right - click context menu * * * /
2018-03-25 09:53:52 +00:00
// user_pref("dom.event.contextmenu.enabled", false);
2017-06-17 09:13:14 +02:00
/ * 2 4 0 2 : d i s a b l e w e b s i t e a c c e s s t o c l i p b o a r d e v e n t s / c o n t e n t
* [ WARNING ] This will break some sites functionality such as pasting into facebook , wordpress
2017-07-25 05:15:37 +12:00
* this applies to onCut , onCopy , onPaste events - i . e . you have to interact with
2017-06-17 09:13:14 +02:00
* the website for it to look at the clipboard
2017-07-09 18:49:39 +02:00
* [ 1 ] https : //www.ghacks.net/2014/01/08/block-websites-reading-modifying-clipboard-contents-firefox/ ***/
2017-06-17 09:13:14 +02:00
user _pref ( "dom.event.clipboardevents.enabled" , false ) ;
/ * 2 4 0 3 : d i s a b l e c l i p b o a r d c o m m a n d s ( c u t / c o p y ) f r o m " n o n - p r i v i l e g e d " c o n t e n t ( F F 4 1 + )
* this disables document . execCommand ( "cut" / "copy" ) to protect your clipboard
2018-03-15 02:22:58 +13:00
* [ 1 ] https : //bugzilla.mozilla.org/1170911 ***/
2017-06-17 09:13:14 +02:00
user _pref ( "dom.allow_cut_copy" , false ) ; // (hidden pref)
2018-03-25 09:53:52 +00:00
/ * 2 4 0 4 : d i s a b l e " C o n f i r m y o u w a n t t o l e a v e " d i a l o g o n p a g e c l o s e
* Does not prevent JS leaks of the page close event .
* [ 1 ] https : //developer.mozilla.org/docs/Web/Events/beforeunload
* [ 2 ] https : //support.mozilla.org/questions/1043508 ***/
user _pref ( "dom.disable_beforeunload" , true ) ;
2017-06-17 09:13:14 +02:00
/* 2414: disable shaking the screen ***/
user _pref ( "dom.vibrator.enabled" , false ) ;
2018-02-16 18:39:01 +01:00
/ * 2 4 2 0 : d i s a b l e a s m . j s ( F F 2 2 + )
* [ 1 ] http : //asmjs.org/
* [ 2 ] https : //www.mozilla.org/security/advisories/mfsa2015-29/
* [ 3 ] https : //www.mozilla.org/security/advisories/mfsa2015-50/
* [ 4 ] https : //www.mozilla.org/security/advisories/mfsa2017-01/#CVE-2017-5375
* [ 5 ] https : //www.mozilla.org/security/advisories/mfsa2017-05/#CVE-2017-5400
* [ 6 ] https : //rh0dev.github.io/blog/2017/the-return-of-the-jit/ ***/
2017-06-17 09:13:14 +02:00
user _pref ( "javascript.options.asmjs" , false ) ;
2018-02-13 07:13:59 +00:00
/ * 2 4 2 1 : d i s a b l e I o n a n d b a s e l i n e J I T t o h e l p h a r d e n J S a g a i n s t e x p l o i t s
2017-06-17 09:13:14 +02:00
* [ WARNING ] Causes the odd site issue and there is also a performance loss
2018-02-16 18:39:01 +01:00
* [ 1 ] https : //cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-0817 ***/
2017-06-17 09:13:14 +02:00
// user_pref("javascript.options.ion", false);
// user_pref("javascript.options.baselinejit", false);
/ * 2 4 2 2 : d i s a b l e W e b A s s e m b l y f o r n o w ( F F 5 2 + )
2017-08-31 17:27:04 +12:00
* [ 1 ] https : //developer.mozilla.org/docs/WebAssembly ***/
2017-06-17 09:13:14 +02:00
user _pref ( "javascript.options.wasm" , false ) ;
/ * 2 4 2 6 : d i s a b l e I n t e r s e c t i o n O b s e r v e r A P I ( F F 5 3 + )
* Almost a year to complete , three versions late to stable ( as default false ) ,
* number # 1 cause of crashes in nightly numerous times , and is ( primarily ) an
* ad network API for "ad viewability checks" down to a pixel level
2017-08-31 17:27:04 +12:00
* [ 1 ] https : //developer.mozilla.org/docs/Web/API/Intersection_Observer_API
2017-08-30 18:17:06 +12:00
* [ 2 ] https : //w3c.github.io/IntersectionObserver/
2018-03-15 02:22:58 +13:00
* [ 3 ] https : //bugzilla.mozilla.org/1243846 ***/
2017-06-17 09:13:14 +02:00
user _pref ( "dom.IntersectionObserver.enabled" , false ) ;
2018-01-29 13:35:20 +00:00
/ * 2 4 2 7 : d i s a b l e S h a r e d M e m o r y ( S p e c t r e m i t i g a t i o n )
* [ 1 ] https : //github.com/tc39/ecmascript_sharedmem/blob/master/TUTORIAL.md
* [ 2 ] https : //blog.mozilla.org/security/2018/01/03/mitigations-landing-new-class-timing-attack/ ***/
user _pref ( "javascript.options.shared_memory" , false ) ;
2017-06-17 09:13:14 +02:00
/*** 2500: HARDWARE FINGERPRINTING ***/
2017-09-16 10:28:22 +12:00
user _pref ( "_user.js.parrot" , "2500 syntax error: the parrot's shuffled off 'is mortal coil!" ) ;
2018-08-15 19:04:25 +00:00
/ * 2 5 0 2 : d i s a b l e B a t t e r y S t a t u s A P I
* Initially a Linux issue ( high precision readout ) that was fixed .
* However , it is still another metric for fingerprinting , used to raise entropy .
* e . g . do you have a battery or not , current charging status , charge level , times remaining etc
* [ NOTE ] From FF52 + Battery Status API is only available in chrome / privileged code . see [ 1 ]
* [ 1 ] https : //bugzilla.mozilla.org/1313580 ***/
// user_pref("dom.battery.enabled", false);
2017-06-17 09:13:14 +02:00
/ * 2 5 0 4 : d i s a b l e v i r t u a l r e a l i t y d e v i c e s
2017-09-16 05:26:07 +12:00
* [ WARNING ] [ SETUP ] Optional protection depending on your connected devices
2017-08-31 17:27:04 +12:00
* [ 1 ] https : //developer.mozilla.org/docs/Web/API/WebVR_API ***/
2017-09-16 05:26:07 +12:00
// user_pref("dom.vr.enabled", false);
2017-06-17 09:13:14 +02:00
/ * 2 5 0 5 : d i s a b l e m e d i a d e v i c e e n u m e r a t i o n ( F F 2 9 + )
* [ NOTE ] media . peerconnection . enabled should also be set to false ( see 2001 )
* [ 1 ] https : //wiki.mozilla.org/Media/getUserMedia
2017-08-31 17:27:04 +12:00
* [ 2 ] https : //developer.mozilla.org/docs/Web/API/MediaDevices/enumerateDevices ***/
2017-06-17 09:13:14 +02:00
user _pref ( "media.navigator.enabled" , false ) ;
/ * 2 5 0 8 : d i s a b l e h a r d w a r e a c c e l e r a t i o n t o r e d u c e g r a p h i c s f i n g e r p r i n t i n g
2018-03-27 08:49:39 +13:00
* [ SETTING ] General > Performance > Custom > Use hardware acceleration when available
2017-12-09 00:56:53 +13:00
* [ WARNING ] [ SETUP ] Affects text rendering ( fonts will look different ) , impacts video performance ,
* and parts of Quantum that utilize the GPU will also be affected as they are rolled out
2017-06-17 09:13:14 +02:00
* [ 1 ] https : //wiki.mozilla.org/Platform/GFX/HardwareAcceleration ***/
2017-09-28 06:12:19 +13:00
// user_pref("gfx.direct2d.disabled", true); // [WINDOWS]
2017-06-17 09:13:14 +02:00
user _pref ( "layers.acceleration.disabled" , true ) ;
/ * 2 5 1 0 : d i s a b l e W e b A u d i o A P I ( F F 5 1 + )
2018-03-15 02:22:58 +13:00
* [ 1 ] https : //bugzilla.mozilla.org/1288359 ***/
2017-06-17 09:13:14 +02:00
user _pref ( "dom.webaudio.enabled" , false ) ;
2018-03-17 01:53:23 +00:00
/ * 2 5 1 6 : d i s a b l e P o i n t e r E v e n t s
* [ 1 ] https : //developer.mozilla.org/en-US/docs/Web/API/PointerEvent ***/
user _pref ( "dom.w3c_pointer_events.enabled" , false ) ;
2018-11-13 08:42:49 +00:00
/ * 2 5 1 7 : d i s a b l e M e d i a C a p a b i l i t i e s A P I ( F F 6 3 + )
2018-11-13 15:11:01 +00:00
* [ WARNING ] This * may * affect media performance if disabled , no one is sure
* [ 1 ] https : //github.com/WICG/media-capabilities
* [ 2 ] https : //wicg.github.io/media-capabilities/#security-privacy-considerations ***/
// user_pref("media.media-capabilities.enabled", false);
2017-06-17 09:13:14 +02:00
2018-03-13 09:04:54 +00:00
/*** 2600: MISCELLANEOUS ***/
2017-09-16 10:28:22 +12:00
user _pref ( "_user.js.parrot" , "2600 syntax error: the parrot's run down the curtain!" ) ;
2018-05-08 04:13:53 +12:00
/ * 2 6 0 1 : p r e v e n t a c c e s s i b i l i t y s e r v i c e s f r o m a c c e s s i n g y o u r b r o w s e r [ R E S T A R T ]
* [ SETTING ] Privacy & Security > Permissions > Prevent accessibility services from accessing your browser
* [ 1 ] https : //support.mozilla.org/kb/accessibility-services ***/
user _pref ( "accessibility.force_disabled" , 1 ) ;
/ * 2 6 0 2 : d i s a b l e s e n d i n g a d d i t i o n a l a n a l y t i c s t o w e b s e r v e r s
2017-08-31 17:27:04 +12:00
* [ 1 ] https : //developer.mozilla.org/docs/Web/API/Navigator/sendBeacon ***/
2017-06-17 09:13:14 +02:00
user _pref ( "beacon.enabled" , false ) ;
2018-05-08 04:13:53 +12:00
/ * 2 6 0 3 : r e m o v e t e m p f i l e s o p e n e d w i t h a n e x t e r n a l a p p l i c a t i o n
2018-03-15 02:22:58 +13:00
* [ 1 ] https : //bugzilla.mozilla.org/302433 ***/
2017-06-17 09:13:14 +02:00
user _pref ( "browser.helperApps.deleteTempFileOnExit" , true ) ;
2018-05-08 04:13:53 +12:00
/ * 2 6 0 4 : d i s a b l e p a g e t h u m b n a i l c o l l e c t i o n
2017-06-17 09:13:14 +02:00
* look in profile / thumbnails directory - you may want to clean that out * * * /
user _pref ( "browser.pagethumbnails.capturing_disabled" , true ) ; // (hidden pref)
2018-05-08 04:13:53 +12:00
/ * 2 6 0 5 : b l o c k w e b c o n t e n t i n f i l e p r o c e s s e s ( F F 5 5 + )
* [ WARNING ] [ SETUP ] You may want to disable this for corporate or developer environments
* [ 1 ] https : //bugzilla.mozilla.org/1343184 ***/
user _pref ( "browser.tabs.remote.allowLinkedWebInFileUriProcess" , false ) ;
/* 2606: disable UITour backend so there is no chance that a remote page can use it ***/
user _pref ( "browser.uitour.enabled" , false ) ;
user _pref ( "browser.uitour.url" , "" ) ;
/ * 2 6 0 7 : d i s a b l e v a r i o u s d e v e l o p e r t o o l s i n b r o w s e r c o n t e x t
* [ SETTING ] Devtools > Advanced Settings > Enable browser chrome and add - on debugging toolboxes
* [ 1 ] https : //github.com/pyllyukko/user.js/issues/179#issuecomment-246468676 ***/
user _pref ( "devtools.chrome.enabled" , false ) ;
/ * 2 6 0 8 : d i s a b l e W e b I D E t o p r e v e n t r e m o t e d e b u g g i n g a n d e x t e n s i o n d o w n l o a d s
2017-06-17 09:13:14 +02:00
* [ 1 ] https : //trac.torproject.org/projects/tor/ticket/16222 ***/
user _pref ( "devtools.webide.autoinstallADBHelper" , false ) ;
user _pref ( "devtools.debugger.remote-enabled" , false ) ;
user _pref ( "devtools.webide.enabled" , false ) ;
2018-05-08 04:13:53 +12:00
/ * 2 6 0 9 : d i s a b l e M a t h M L ( M a t h e m a t i c a l M a r k u p L a n g u a g e ) ( F F 5 1 + )
* [ TEST ] http : //browserspy.dk/mathml.php
* [ 1 ] https : //bugzilla.mozilla.org/1173199 ***/
user _pref ( "mathml.disabled" , true ) ;
/ * 2 6 1 0 : d i s a b l e i n - c o n t e n t S V G ( S c a l a b l e V e c t o r G r a p h i c s ) ( F F 5 3 + )
* [ WARNING ] Expect breakage incl . youtube player controls . Best left for a "hardened" profile .
* [ 1 ] https : //bugzilla.mozilla.org/1216893 ***/
// user_pref("svg.disabled", true);
/ * 2 6 1 1 : d i s a b l e m i d d l e m o u s e c l i c k o p e n i n g l i n k s f r o m c l i p b o a r d
2017-06-17 09:13:14 +02:00
* [ 1 ] https : //trac.torproject.org/projects/tor/ticket/10089
* [ 2 ] http : //kb.mozillazine.org/Middlemouse.contentLoadURL ***/
user _pref ( "middlemouse.contentLoadURL" , false ) ;
2018-05-08 04:13:53 +12:00
/ * 2 6 1 4 : l i m i t H T T P r e d i r e c t s ( t h i s d o e s n o t c o n t r o l r e d i r e c t s w i t h H T M L m e t a t a g s o r J S )
* [ WARNING ] A low setting of 5 or under will probably break some sites ( e . g . gmail logins )
* To control HTML Meta tag and JS redirects , use an extension . Default is 20 * * * /
user _pref ( "network.http.redirection-limit" , 10 ) ;
/ * 2 6 1 5 : d i s a b l e w e b s i t e s o v e r r i d i n g F i r e f o x ' s k e y b o a r d s h o r t c u t s ( F F 5 8 + )
2018-02-03 03:38:06 +00:00
* [ SETTING ] to add site exceptions : Page Info > Permissions > Override Keyboard Shortcuts
* [ NOTE ] At the time of writing , causes issues with delete and backspace keys * * * /
// user_pref("permissions.default.shortcuts", 2); // 0 (default) or 1=allow, 2=block
2018-05-08 04:13:53 +12:00
/ * 2 6 1 6 : r e m o v e s p e c i a l p e r m i s s i o n s f o r c e r t a i n m o z i l l a d o m a i n s ( F F 3 5 + )
* [ 1 ] resource : //app/defaults/permissions ***/
user _pref ( "permissions.manager.defaultsUrl" , "" ) ;
/* 2617: remove webchannel whitelist ***/
2017-06-17 09:13:14 +02:00
user _pref ( "webchannel.allowObject.urlWhitelist" , "" ) ;
2018-05-08 04:13:53 +12:00
/ * 2 6 1 8 : d i s a b l e e x p o s u r e o f s y s t e m c o l o r s t o C S S o r c a n v a s ( F F 4 4 + )
* [ NOTE ] see second listed bug : may cause black on black for elements with undefined colors
* [ 1 ] https : //bugzilla.mozilla.org/buglist.cgi?bug_id=232227,1330876 ***/
user _pref ( "ui.use_standins_for_native_colors" , true ) ; // (hidden pref)
/ * 2 6 1 9 : e n f o r c e P u n y c o d e f o r I n t e r n a t i o n a l i z e d D o m a i n N a m e s t o e l i m i n a t e p o s s i b l e s p o o f i n g
2018-05-06 16:57:00 +00:00
* Firefox has * some * protections , but it is better to be safe than sorry . The downside : it will also
* display legitimate IDN ' s punycoded , which might be undesirable for users of non - latin alphabets
2017-06-17 09:13:14 +02:00
* [ TEST ] https : //www.xn--80ak6aa92e.com/ (www.apple.com)
2018-05-06 16:57:00 +00:00
* [ 1 ] https : //wiki.mozilla.org/IDN_Display_Algorithm
* [ 2 ] https : //en.wikipedia.org/wiki/IDN_homograph_attack
* [ 3 ] CVE - 2017 - 5383 : https : //www.mozilla.org/security/advisories/mfsa2017-02/
* [ 4 ] https : //www.xudongz.com/blog/2017/idn-phishing/ ***/
2017-06-17 09:13:14 +02:00
user _pref ( "network.IDN_show_punycode" , true ) ;
2018-05-08 04:13:53 +12:00
/ * 2 6 2 0 : e n a b l e F i r e f o x ' s b u i l t - i n P D F r e a d e r [ S E T U P ]
* [ SETTING ] General > Applications > Portable Document Format ( PDF )
* This setting controls if the option "Display in Firefox" in the above setting is available
* and by effect controls whether PDFs are handled in - browser or externally ( "Ask" or "Open With" )
* PROS : pdfjs is lightweight , open source , and as secure / vetted as any pdf reader out there ( more than most )
* Exploits are rare ( 1 serious case in 4 yrs ) , treated seriously and patched quickly .
* It doesn ' t break "state separation" of browser content ( by not sharing with OS , independent apps ) .
* It maintains disk avoidance and application data isolation . It ' s convenient . You can still save to disk .
* CONS : You may prefer a different pdf reader for security reasons
* CAVEAT : JS can still force a pdf to open in - browser by bundling its own code ( rare ) * * * /
user _pref ( "pdfjs.disabled" , false ) ;
2018-05-06 16:57:00 +00:00
2018-05-05 20:14:57 +02:00
/** DOWNLOADS ***/
2018-05-07 15:51:50 +00:00
/ * 2 6 5 0 : d i s c o u r a g e d o w n l o a d i n g t o d e s k t o p ( 0 = d e s k t o p 1 = d o w n l o a d s 2 = l a s t u s e d )
2018-05-05 20:14:57 +02:00
* [ SETTING ] To set your default "downloads" : General > Downloads > Save files to * * * /
user _pref ( "browser.download.folderList" , 2 ) ;
2018-05-16 18:31:28 +02:00
/ * 2 6 5 1 : e n f o r c e u s e r i n t e r a c t i o n f o r s e c u r i t y b y a l w a y s a s k i n g t h e u s e r w h e r e t o d o w n l o a d
2018-08-09 03:30:57 +00:00
* [ SETTING ] General > Downloads > Always ask you where to save files * * * /
2018-05-05 20:14:57 +02:00
user _pref ( "browser.download.useDownloadDir" , false ) ;
2018-05-07 15:51:50 +00:00
/* 2652: disable adding downloads to the system's "recent documents" list ***/
2018-05-05 20:14:57 +02:00
user _pref ( "browser.download.manager.addToRecentDocs" , false ) ;
2018-05-07 15:51:50 +00:00
/* 2653: disable hiding mime types (Options>General>Applications) not associated with a plugin ***/
2018-05-05 20:14:57 +02:00
user _pref ( "browser.download.hide_plugins_without_extensions" , false ) ;
2018-05-07 15:51:50 +00:00
/ * 2 6 5 4 : d i s a b l e " o p e n w i t h " i n d o w n l o a d d i a l o g ( F F 5 0 + )
2018-05-05 20:14:57 +02:00
* This is very useful to enable when the browser is sandboxed ( e . g . via AppArmor )
* in such a way that it is forbidden to run external applications .
* [ SETUP ] This may interfere with some users ' workflow or methods
* [ 1 ] https : //bugzilla.mozilla.org/1281959 ***/
user _pref ( "browser.download.forbid_open_with" , true ) ;
2018-05-06 16:57:00 +00:00
2018-05-05 20:14:57 +02:00
/** EXTENSIONS ***/
2018-05-07 15:51:50 +00:00
/ * 2 6 6 0 : l o c k d o w n a l l o w e d e x t e n s i o n d i r e c t o r i e s
2018-05-05 20:14:57 +02:00
* [ WARNING ] This will break extensions that do not use the default XPI directories
* [ 1 ] https : //mike.kaply.com/2012/02/21/understanding-add-on-scopes/
* [ 1 ] archived : https : //archive.is/DYjAM ***/
user _pref ( "extensions.enabledScopes" , 1 ) ; // (hidden pref)
user _pref ( "extensions.autoDisableScopes" , 15 ) ;
2018-05-07 15:51:50 +00:00
/ * 2 6 6 2 : d i s a b l e w e b e x t e n s i o n r e s t r i c t i o n s o n c e r t a i n m o z i l l a d o m a i n s ( a l s o s e e 4 5 0 3 ) ( F F 6 0 + )
2018-05-05 20:14:57 +02:00
* [ 1 ] https : //bugzilla.mozilla.org/buglist.cgi?bug_id=1384330,1406795,1415644,1453988 ***/
// user_pref("extensions.webextensions.restrictedDomains", "");
2018-05-07 15:51:50 +00:00
/ * 2 6 6 3 : e n a b l e w a r n i n g w h e n w e b s i t e s t r y t o i n s t a l l a d d - o n s
2018-08-09 03:30:57 +00:00
* [ SETTING ] Privacy & Security > Permissions > Warn you when websites try to install add - ons * * * /
2018-05-05 20:14:57 +02:00
user _pref ( "xpinstall.whitelist.required" , true ) ; // default: true
2018-05-06 16:57:00 +00:00
2018-05-05 20:14:57 +02:00
/** SECURITY ***/
2018-05-07 15:51:50 +00:00
/ * 2 6 8 0 : e n a b l e C S P ( C o n t e n t S e c u r i t y P o l i c y )
2017-08-31 17:27:04 +12:00
* [ 1 ] https : //developer.mozilla.org/docs/Web/HTTP/CSP ***/
2018-02-19 11:49:40 +01:00
user _pref ( "security.csp.enable" , true ) ; // default: true
2018-05-07 15:51:50 +00:00
/ * 2 6 8 1 : d i s a b l e C S P v i o l a t i o n e v e n t s ( F F 5 9 + )
2018-05-05 18:21:21 +02:00
* [ 1 ] https : //developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent ***/
user _pref ( "security.csp.enable_violation_events" , false ) ;
2018-05-07 15:51:50 +00:00
/ * 2 6 8 2 : e n a b l e C S P 1 . 1 e x p e r i m e n t a l h a s h - s o u r c e d i r e c t i v e ( F F 2 9 + )
2018-03-15 02:22:58 +13:00
* [ 1 ] https : //bugzilla.mozilla.org/buglist.cgi?bug_id=855326,883975 ***/
2017-06-17 09:13:14 +02:00
user _pref ( "security.csp.experimentalEnabled" , true ) ;
2018-05-07 15:51:50 +00:00
/ * 2 6 8 3 : b l o c k t o p l e v e l w i n d o w d a t a : U R I s ( F F 5 6 + )
2018-03-15 02:22:58 +13:00
* [ 1 ] https : //bugzilla.mozilla.org/1331351
2017-09-29 03:06:22 +13:00
* [ 2 ] https : //www.wordfence.com/blog/2017/01/gmail-phishing-data-uri/
* [ 3 ] https : //www.fxsitecompat.com/en-CA/docs/2017/data-url-navigations-on-top-level-window-will-be-blocked/ ***/
2018-09-12 22:17:56 +00:00
user _pref ( "security.data_uri.block_toplevel_data_uri_navigations" , true ) ; // default: true in FF59+
2018-05-07 15:51:50 +00:00
/ * 2 6 8 4 : e n f o r c e a s e c u r i t y d e l a y o n s o m e c o n f i r m a t i o n d i a l o g s s u c h a s i n s t a l l , o p e n / s a v e
2018-05-05 18:21:21 +02:00
* [ 1 ] http : //kb.mozillazine.org/Disable_extension_install_delay_-_Firefox
* [ 2 ] https : //www.squarefree.com/2004/07/01/race-conditions-in-security-dialogs/ ***/
user _pref ( "security.dialog_enable_delay" , 700 ) ; // default: 1000 (milliseconds)
2017-06-17 09:13:14 +02:00
2017-11-25 16:12:29 +13:00
/ * * * 2 7 0 0 : P E R S I S T E N T S T O R A G E
2017-11-27 10:14:55 +13:00
Data SET by websites including
2017-11-27 10:22:55 +13:00
cookies : profile \ cookies . sqlite
2017-11-28 13:32:49 +13:00
localStorage : profile \ webappsstore . sqlite
indexedDB : profile \ storage \ default
appCache : profile \ OfflineCache
2017-11-29 16:21:17 +13:00
serviceWorkers :
2018-08-28 07:57:21 +00:00
* * * /
2017-09-16 10:28:22 +12:00
user _pref ( "_user.js.parrot" , "2700 syntax error: the parrot's joined the bleedin' choir invisible!" ) ;
2018-08-15 05:56:40 +00:00
/ * 2 7 0 1 : d i s a b l e 3 r d - p a r t y c o o k i e s a n d s i t e - d a t a [ S E T U P ]
2017-07-25 05:36:32 +12:00
* You can set exceptions under site permissions or use an extension
2018-10-29 15:40:24 +00:00
* 0 = Accept cookies and site data , 1 = Block third - party cookies , 2 = Block all cookies ,
* 3 = Block cookies from unvisited sites , 4 = Block third - party trackers ( FF63 + )
* [ NOTE ] value 4 is tied to the Tracking Protection lists so make sure you have 0424 + 0425 on default values !
2018-03-27 08:49:39 +13:00
* [ SETTING ] Privacy & Security > History > Custom Settings > Accept cookies from sites
2018-04-04 10:42:52 +00:00
* [ NOTE ] Blocking 3 rd party controls 3 rd party access to localStorage , IndexedDB , Cache API and Service Worker Cache .
* Blocking 1 st party controls access to localStorage and IndexedDB ( note : Service Workers can still use IndexedDB ) .
2017-07-08 05:24:33 +12:00
* [ 1 ] https : //www.fxsitecompat.com/en-CA/docs/2015/web-storage-indexeddb-cache-api-now-obey-third-party-cookies-preference/ ***/
2018-08-15 05:56:40 +00:00
user _pref ( "network.cookie.cookieBehavior" , 1 ) ;
2018-01-18 20:26:49 +13:00
/ * 2 7 0 2 : s e t t h i r d - p a r t y c o o k i e s ( i . e A L L ) ( i f e n a b l e d , s e e a b o v e p r e f ) t o s e s s i o n - o n l y
and ( FF58 + ) set third - party non - secure ( i . e HTTP ) cookies to session - only
[ NOTE ] . sessionOnly overrides . nonsecureSessionOnly except when . sessionOnly = false and
. nonsecureSessionOnly = true . This allows you to keep HTTPS cookies , but session - only HTTP ones
2017-06-17 09:13:14 +02:00
* [ 1 ] https : //feeding.cloud.geek.nz/posts/tweaking-cookies-for-privacy-in-firefox/
* [ 2 ] http : //kb.mozillazine.org/Network.cookie.thirdparty.sessionOnly ***/
user _pref ( "network.cookie.thirdparty.sessionOnly" , true ) ;
2018-01-18 20:26:49 +13:00
user _pref ( "network.cookie.thirdparty.nonsecureSessionOnly" , true ) ; // (FF58+)
2017-06-17 09:13:14 +02:00
/ * 2 7 0 3 : s e t c o o k i e l i f e t i m e p o l i c y
2018-10-23 16:13:23 +00:00
* 0 = until they expire ( default ) , 2 = until you close Firefox
* [ NOTE ] 3 = for n days : no longer supported in FF63 + ( see 2704 - deprecated )
2018-08-09 03:30:57 +00:00
* [ SETTING ] Privacy & Security > History > Custom Settings > Accept cookies from sites > Keep until * * * /
2017-06-17 09:13:14 +02:00
// user_pref("network.cookie.lifetimePolicy", 0);
2018-02-19 11:49:40 +01:00
/ * 2 7 0 5 : d i s a b l e H T T P s i t e s s e t t i n g c o o k i e s w i t h t h e " s e c u r e " d i r e c t i v e ( F F 5 2 + )
2017-12-27 20:13:41 +13:00
* [ 1 ] https : //developer.mozilla.org/Firefox/Releases/52#HTTP ***/
2018-02-19 11:49:40 +01:00
user _pref ( "network.cookie.leave-secure-alone" , true ) ; // default: true
2018-05-04 16:08:20 +00:00
/ * 2 7 0 6 : e n a b l e s u p p o r t f o r s a m e - s i t e c o o k i e s ( F F 6 0 + )
* [ 1 ] https : //bugzilla.mozilla.org/795346
* [ 2 ] https : //blog.mozilla.org/security/2018/04/24/same-site-cookies-in-firefox-60/
* [ 3 ] https : //www.sjoerdlangkemper.nl/2016/04/14/preventing-csrf-with-samesite-cookie-attribute/ ***/
// user_pref("network.cookie.same-site.enabled", true); // default: true
2017-12-27 20:13:41 +13:00
/ * 2 7 1 0 : d i s a b l e D O M ( D o c u m e n t O b j e c t M o d e l ) S t o r a g e
2018-09-12 22:17:56 +00:00
* [ WARNING ] This will break a LOT of sites ' functionality AND extensions !
2017-06-17 09:13:14 +02:00
* You are better off using an extension for more granular control * * * /
// user_pref("dom.storage.enabled", false);
2018-08-17 07:50:33 +00:00
/ * 2 7 2 0 : e n f o r c e I n d e x e d D B ( I D B ) a s e n a b l e d
* IDB is required for extensions and Firefox internals ( even before FF63 in [ 1 ] )
* To control * website * IDB data , control allowing cookies and service workers , or use
* Temporary Containers . To mitigate * website * IDB , FPI helps ( 4001 ) , and / or sanitize
* on close ( Offline Website Data , see 2800 ) or on - demand ( Ctrl - Shift - Del ) , or automatically
* via an extenion . Note that IDB currently cannot be sanitized by host .
* [ 1 ] https : //blog.mozilla.org/addons/2018/08/03/new-backend-for-storage-local-api/ ***/
user _pref ( "dom.indexedDB.enabled" , true ) ; // default: true
2018-11-07 15:14:32 +00:00
/* 2730: disable offline cache ***/
2018-07-05 10:16:20 +00:00
user _pref ( "browser.cache.offline.enable" , false ) ;
2018-04-12 17:38:22 +00:00
/ * 2 7 3 0 b : d i s a b l e o f f l i n e c a c h e o n i n s e c u r e s i t e s ( F F 6 0 + )
* [ 1 ] https : //blog.mozilla.org/security/2018/02/12/restricting-appcache-secure-contexts/ ***/
2018-09-12 22:17:56 +00:00
user _pref ( "browser.cache.offline.insecure.enable" , false ) ; // default: false in FF62+
2017-12-27 20:13:41 +13:00
/ * 2 7 3 1 : e n f o r c e w e b s i t e s t o a s k t o s t o r e d a t a f o r o f f l i n e u s e
2017-11-25 16:12:29 +13:00
* [ 1 ] https : //support.mozilla.org/questions/1098540
2018-03-15 02:22:58 +13:00
* [ 2 ] https : //bugzilla.mozilla.org/959985 ***/
2017-11-25 16:12:29 +13:00
user _pref ( "offline-apps.allow_by_default" , false ) ;
2017-12-27 20:13:41 +13:00
/ * 2 7 4 0 : d i s a b l e s e r v i c e w o r k e r s c a c h e a n d c a c h e s t o r a g e
* [ 1 ] https : //w3c.github.io/ServiceWorker/#privacy ***/
user _pref ( "dom.caches.enabled" , false ) ;
2018-07-05 10:16:20 +00:00
/ * 2 7 5 0 : d i s a b l e S t o r a g e A P I ( F F 5 1 + )
2017-12-27 20:13:41 +13:00
* The API gives sites the ability to find out how much space they can use , how much
* they are already using , and even control whether or not they need to be alerted
* before the user agent disposes of site data in order to make room for other things .
* [ 1 ] https : //developer.mozilla.org/docs/Web/API/StorageManager
* [ 2 ] https : //developer.mozilla.org/docs/Web/API/Storage_API
* [ 3 ] https : //blog.mozilla.org/l10n/2017/03/07/firefox-l10n-report-aurora-54/ ***/
2018-07-05 10:16:20 +00:00
// user_pref("dom.storageManager.enabled", false);
2017-06-17 09:13:14 +02:00
/ * * * 2 8 0 0 : S H U T D O W N [ S E T U P ]
2018-08-15 05:56:40 +00:00
You should set the values to what suits you best .
2018-04-04 10:21:40 +00:00
- "Offline Website Data" includes appCache ( 2730 ) , localStorage ( 2710 ) ,
Service Worker cache ( 2740 ) , and QuotaManager ( IndexedDB ( 2720 ) , asm - cache )
- In both 2803 + 2804 , the 'download' and 'history' prefs are combined in the
Firefox interface as "Browsing & Download History" and their values will be synced
2018-08-28 07:57:21 +00:00
* * * /
2017-09-16 10:28:22 +12:00
user _pref ( "_user.js.parrot" , "2800 syntax error: the parrot's bleedin' demised!" ) ;
2017-06-17 09:13:14 +02:00
/ * 2 8 0 2 : e n a b l e F i r e f o x t o c l e a r h i s t o r y i t e m s o n s h u t d o w n
2018-08-09 03:30:57 +00:00
* [ SETTING ] Privacy & Security > History > Clear history when Firefox closes * * * /
2017-06-17 09:13:14 +02:00
user _pref ( "privacy.sanitize.sanitizeOnShutdown" , true ) ;
/ * 2 8 0 3 : s e t w h a t h i s t o r y i t e m s t o c l e a r o n s h u t d o w n
2018-03-27 08:49:39 +13:00
* [ SETTING ] Privacy & Security > History > Clear history when Firefox closes > Settings
2017-06-17 09:13:14 +02:00
* [ NOTE ] If 'history' is true , downloads will also be cleared regardless of the value
* but if 'history' is false , downloads can still be cleared independently
* However , this may not always be the case . The interface combines and syncs these
* prefs when set from there , and the sanitize code may change at any time * * * /
user _pref ( "privacy.clearOnShutdown.cache" , true ) ;
2018-08-15 05:56:40 +00:00
user _pref ( "privacy.clearOnShutdown.cookies" , true ) ;
2017-06-17 09:13:14 +02:00
user _pref ( "privacy.clearOnShutdown.downloads" , true ) ; // see note above
user _pref ( "privacy.clearOnShutdown.formdata" , true ) ; // Form & Search History
user _pref ( "privacy.clearOnShutdown.history" , true ) ; // Browsing & Download History
user _pref ( "privacy.clearOnShutdown.offlineApps" , true ) ; // Offline Website Data
user _pref ( "privacy.clearOnShutdown.sessions" , true ) ; // Active Logins
user _pref ( "privacy.clearOnShutdown.siteSettings" , false ) ; // Site Preferences
2017-09-19 05:22:25 +12:00
/ * 2 8 0 4 : r e s e t d e f a u l t h i s t o r y i t e m s t o c l e a r w i t h C t r l - S h i f t - D e l ( t o m a t c h a b o v e )
2017-06-17 09:13:14 +02:00
* This dialog can also be accessed from the menu History > Clear Recent History
2017-09-19 05:22:25 +12:00
* Firefox remembers your last choices . This will reset them when you start Firefox .
2017-06-17 09:13:14 +02:00
* [ NOTE ] Regardless of what you set privacy . cpd . downloads to , as soon as the dialog
* for "Clear Recent History" is opened , it is synced to the same as 'history' * * * /
user _pref ( "privacy.cpd.cache" , true ) ;
2018-08-15 05:56:40 +00:00
user _pref ( "privacy.cpd.cookies" , true ) ;
2017-06-17 09:13:14 +02:00
// user_pref("privacy.cpd.downloads", true); // not used, see note above
user _pref ( "privacy.cpd.formdata" , true ) ; // Form & Search History
user _pref ( "privacy.cpd.history" , true ) ; // Browsing & Download History
user _pref ( "privacy.cpd.offlineApps" , true ) ; // Offline Website Data
user _pref ( "privacy.cpd.passwords" , false ) ; // this is not listed
user _pref ( "privacy.cpd.sessions" , true ) ; // Active Logins
user _pref ( "privacy.cpd.siteSettings" , false ) ; // Site Preferences
/ * 2 8 0 5 : p r i v a c y . * . o p e n W i n d o w s ( c l e a r s e s s i o n r e s t o r e d a t a ) ( F F 3 4 + )
* [ NOTE ] There is a years - old bug that these cause two windows when Firefox restarts .
* You do not need these anyway if session restore is disabled ( see 1020 ) * * * /
// user_pref("privacy.clearOnShutdown.openWindows", true);
// user_pref("privacy.cpd.openWindows", true);
/ * 2 8 0 6 : r e s e t d e f a u l t ' T i m e r a n g e t o c l e a r ' f o r ' C l e a r R e c e n t H i s t o r y ' ( s e e 2 8 0 4 )
* Firefox remembers your last choice . This will reset the value when you start Firefox .
2017-07-28 21:15:25 +02:00
* 0 = everything , 1 = last hour , 2 = last two hours , 3 = last four hours ,
2017-06-17 09:13:14 +02:00
* 4 = today , 5 = last five minutes , 6 = last twenty - four hours
* [ NOTE ] The values 5 + 6 are not listed in the dropdown , which will display a
* blank value if they are used , but they do work as advertised * * * /
user _pref ( "privacy.sanitize.timeSpan" , 0 ) ;
2017-09-14 15:25:32 +12:00
/ * * * 4 0 0 0 : F I R S T P A R T Y I S O L A T I O N ( F P I )
2018-03-27 23:03:53 +00:00
* * 1278037 - isolate indexedDB ( FF51 + )
2017-09-14 15:25:32 +12:00
* * 1277803 - isolate favicons ( FF52 + )
* * 1264562 - isolate OCSP cache ( FF52 + )
* * 1268726 - isolate Shared Workers ( FF52 + )
* * 1316283 - isolate SSL session cache ( FF52 + )
* * 1317927 - isolate media cache ( FF53 + )
* * 1323644 - isolate HSTS and HPKP ( FF54 + )
* * 1334690 - isolate HTTP Alternative Services ( FF54 + )
* * 1334693 - isolate SPDY / HTTP2 ( FF55 + )
* * 1337893 - isolate DNS cache ( FF55 + )
* * 1344170 - isolate blob : URI ( FF55 + )
2017-09-29 03:06:22 +13:00
* * 1300671 - isolate data : , about : URLs ( FF55 + )
2018-07-17 02:58:51 +00:00
* * 1473247 - isolate IP addresses ( FF63 + )
2018-10-28 16:46:22 +00:00
* * 1492607 - isolate postMessage with targetOrigin "*" ( requires 4002 ) ( FF65 + )
2017-11-26 03:23:35 +13:00
2018-01-05 12:23:56 +13:00
NOTE : FPI has some issues depending on your Firefox release
* * 1418931 - [ fixed in FF58 + ] IndexedDB ( Offline Website Data ) with FPI Origin Attributes
2017-11-26 03:23:35 +13:00
are not removed with "Clear All/Recent History" or "On Close"
2018-01-05 12:23:56 +13:00
* * 1381197 - [ fixed in FF59 + ] extensions cannot control cookies with FPI Origin Attributes
2017-09-14 15:25:32 +12:00
* * * /
2017-09-16 10:28:22 +12:00
user _pref ( "_user.js.parrot" , "4000 syntax error: the parrot's pegged out" ) ;
2017-09-14 15:25:32 +12:00
/ * 4 0 0 1 : e n a b l e F i r s t P a r t y I s o l a t i o n ( F F 5 1 + )
* [ WARNING ] May break cross - domain logins and site functionality until perfected
2018-03-15 02:22:58 +13:00
* [ 1 ] https : //bugzilla.mozilla.org/1260931 ***/
2017-09-14 15:25:32 +12:00
user _pref ( "privacy.firstparty.isolate" , true ) ;
/ * 4 0 0 2 : e n f o r c e F P I r e s t r i c t i o n f o r w i n d o w . o p e n e r ( F F 5 4 + )
* [ NOTE ] Setting this to false may reduce the breakage in 4001
2018-10-28 16:46:22 +00:00
* [ FF65 + ] blocks postMessage with targetOrigin "*" if originAttributes don ' t match . But
* to reduce breakage it ignores the 1 st - party domain ( FPD ) originAttribute . ( see [ 2 ] , [ 3 ] )
* The 2 nd pref removes that limitation and will only allow communication if FPDs also match .
* [ 1 ] https : //bugzilla.mozilla.org/1319773#c22
* [ 2 ] https : //bugzilla.mozilla.org/1492607
* [ 3 ] https : //developer.mozilla.org/en-US/docs/Web/API/Window/postMessage ***/
user _pref ( "privacy.firstparty.isolate.restrict_opener_access" , true ) ; // default: true
// user_pref("privacy.firstparty.isolate.block_post_message", true); // (hidden pref)
2017-09-14 15:25:32 +12:00
2017-09-16 10:36:30 +12:00
/ * * * 4 5 0 0 : p r i v a c y . r e s i s t F i n g e r p r i n t i n g ( R F P )
2017-09-14 15:57:42 +12:00
This master switch will be used for a wide range of items , many of which will
* * override * * existing prefs from FF55 + , often providing a * * better * * solution
IMPORTANT : As existing prefs become redundant , and some of them WILL interfere
with how RFP works , they will be moved to section 4600 and made inactive
* * 418986 - limit window . screen & CSS media queries leaking identifiable info ( FF41 + )
[ POC ] http : //ip-check.info/?lang=en (screen, usable screen, and browser window will match)
2018-03-15 02:22:58 +13:00
[ NOTE ] Does not cover everything yet - https : //bugzilla.mozilla.org/1216800
2017-09-14 15:57:42 +12:00
[ NOTE ] This will probably make your values pretty unique until you resize or snap the
inner window width + height into standard / common resolutions ( such as 1366 x768 )
To set a size , open a XUL ( chrome ) page ( such as about : config ) which is at 100 % zoom , hit
Shift + F4 to open the scratchpad , type window . resizeTo ( 1366 , 768 ) , hit Ctrl + R to run . Test
your window size , do some math , resize to allow for all the non inner window elements
[ TEST ] http : //browserspy.dk/screen.php
* * 1281949 - spoof screen orientation ( FF50 + )
* * 1281963 - hide the contents of navigator . plugins and navigator . mimeTypes ( FF50 + )
2018-04-10 17:25:23 +00:00
FF53 : Fixes GetSupportedNames in nsMimeTypeArray and nsPluginArray ( 1324044 )
2017-09-14 15:57:42 +12:00
* * 1330890 - spoof timezone as UTC 0 ( FF55 + )
2018-02-27 11:31:03 +00:00
FF58 : Date . toLocaleFormat deprecated ( 818634 )
FF60 : Date . toLocaleDateString and Intl . DateTimeFormat fixed ( 1409973 )
2017-09-14 17:43:24 +12:00
* * 1360039 - spoof navigator . hardwareConcurrency as 2 ( see 4601 ) ( FF55 + )
2017-09-14 15:57:42 +12:00
This spoof * shouldn ' t * affect core chrome / Firefox performance
* * 1217238 - reduce precision of time exposed by javascript ( FF55 + )
2017-09-30 20:15:41 +13:00
* * 1369303 - spoof / disable performance API ( see 2410 - deprecated , 4602 , 4603 ) ( FF56 + )
2018-02-28 12:10:05 +00:00
* * 1333651 & 1383495 & 1396468 - spoof Navigator API ( see section 4700 ) ( FF56 + )
2017-09-14 15:57:42 +12:00
FF56 : The version number will be rounded down to the nearest multiple of 10
2018-05-04 18:30:44 +00:00
FF57 : The version number will match current ESR ( 1393283 , 1418672 , 1418162 )
2018-02-28 12:10:05 +00:00
FF59 : The OS will be reported as Windows , OSX , Android , or Linux ( to reduce breakage ) ( 1404608 )
2017-09-30 20:15:41 +13:00
* * 1369319 - disable device sensor API ( see 4604 ) ( FF56 + )
* * 1369357 - disable site specific zoom ( see 4605 ) ( FF56 + )
* * 1337161 - hide gamepads from content ( see 4606 ) ( FF56 + )
* * 1372072 - spoof network information API as "unknown" ( see 4607 ) ( FF56 + )
* * 1333641 - reduce fingerprinting in WebSpeech API ( see 4608 ) ( FF56 + )
2018-06-26 03:48:47 +00:00
* * 1372069 & 1403813 & 1441295 - block geolocation requests ( same as denying a site permission ) ( see 0201 , 0211 ) ( FF56 - 62 )
2017-11-20 13:49:19 +01:00
* * 1369309 - spoof media statistics ( see 4610 ) ( FF57 + )
* * 1382499 - reduce screen co - ordinate fingerprinting in Touch API ( see 4611 ) ( FF57 + )
2018-02-28 12:19:36 +00:00
* * 1217290 & 1409677 - enable fingerprinting resistance for WebGL ( see 2010 - 12 ) ( FF57 + )
2017-09-14 15:57:42 +12:00
* * 1382545 - reduce fingerprinting in Animation API ( FF57 + )
* * 1354633 - limit MediaError . message to a whitelist ( FF57 + )
2018-01-29 14:37:36 +00:00
* * 1382533 - enable fingerprinting resistance for Presentation API ( FF57 + )
2017-09-14 15:57:42 +12:00
This blocks exposure of local IP Addresses via mDNS ( Multicast DNS )
2017-10-29 05:11:43 +13:00
* * 967895 - enable site permission prompt before allowing canvas data extraction ( FF58 + )
2018-03-01 04:32:12 +00:00
FF59 : Added to site permissions panel ( 1413780 ) Only prompt when triggered by user input ( 1376865 )
2018-03-13 19:26:39 +00:00
* * 1372073 - spoof / block fingerprinting in MediaDevices API ( see 4612 ) ( FF59 + )
2017-12-16 05:21:08 +13:00
* * 1039069 - warn when language prefs are set to non en - US ( see 0207 , 0208 ) ( FF59 + )
2018-03-27 17:03:36 +00:00
* * 1222285 & 1433592 - spoof keyboard events and suppress keyboard modifier events ( FF59 + )
2018-01-18 15:55:57 +13:00
Spoofing mimics the content language of the document . Currently it only supports en - US .
2018-03-27 17:03:36 +00:00
Modifier events suppressed are SHIFT and both ALT keys . Chrome is not affected .
FF60 : Fix keydown / keyup events ( 1438795 )
2018-05-04 17:23:26 +00:00
* * 1337157 - disable WebGL debug renderer info ( see 4613 ) ( FF60 + )
2018-05-23 17:53:16 +00:00
* * 1459089 - disable OS locale in HTTP Accept - Language headers [ ANDROID ] ( FF62 + )
2018-10-11 05:50:09 +00:00
* * 1363508 - spoof / suppress Pointer Events ( FF64 + )
2017-09-14 15:57:42 +12:00
* * * /
2017-09-16 10:28:22 +12:00
user _pref ( "_user.js.parrot" , "4500 syntax error: the parrot's popped 'is clogs" ) ;
2017-09-14 15:57:42 +12:00
/ * 4 5 0 1 : e n a b l e p r i v a c y . r e s i s t F i n g e r p r i n t i n g ( F F 4 1 + )
2018-03-15 02:22:58 +13:00
* [ 1 ] https : //bugzilla.mozilla.org/418986 ***/
2017-09-14 15:57:42 +12:00
user _pref ( "privacy.resistFingerprinting" , true ) ; // (hidden pref) (not hidden FF55+)
/ * 4 5 0 2 : s e t n e w w i n d o w s i z e s t o r o u n d t o h u n d r e d s ( F F 5 5 + ) [ S E T U P ]
2017-09-15 14:46:31 +02:00
* [ NOTE ] Width will round down to multiples of 200 s and height to 100 s , to fit your screen .
2017-09-14 15:57:42 +12:00
* The override values are a starting point to round from if you want some control
2018-03-15 02:22:58 +13:00
* [ 1 ] https : //bugzilla.mozilla.org/1330882
2017-09-14 15:57:42 +12:00
* [ 2 ] https : //hardware.metrics.mozilla.com/ ***/
2017-10-02 09:32:27 +13:00
// user_pref("privacy.window.maxInnerWidth", 1600); // (hidden pref)
// user_pref("privacy.window.maxInnerHeight", 900); // (hidden pref)
2017-09-18 18:40:15 +12:00
/ * 4 5 0 3 : d i s a b l e m o z A d d o n M a n a g e r W e b A P I ( F F 5 7 + )
2018-05-04 21:18:45 +00:00
* [ NOTE ] As a side - effect in FF57 - 59 this allowed extensions to work on AMO . In FF60 + you also need
2018-05-07 15:51:50 +00:00
* to sanitize or clear extensions . webextensions . restrictedDomains ( see 2662 ) to keep that side - effect
2018-05-04 21:18:45 +00:00
* [ 1 ] https : //bugzilla.mozilla.org/buglist.cgi?bug_id=1384330,1406795,1415644,1453988 ***/
user _pref ( "privacy.resistFingerprinting.block_mozAddonManager" , true ) ; // (hidden pref)
2018-09-08 17:23:48 +00:00
/ * 4 5 0 4 : d i s a b l e s h o w i n g a b o u t : b l a n k a s s o o n a s p o s s i b l e d u r i n g s t a r t u p ( F F 6 0 + )
2018-09-09 20:43:56 +00:00
* When default true ( FF62 + ) this no longer masks the RFP resizing activity
* [ 1 ] https : //bugzilla.mozilla.org/1448423 ***/
2018-09-08 17:23:48 +00:00
user _pref ( "browser.startup.blankWindow" , false ) ;
2017-09-14 15:57:42 +12:00
2017-09-14 17:28:52 +12:00
/ * * * 4 6 0 0 : R F P ( 4 5 0 0 ) A L T E R N A T I V E S [ S E T U P ]
* IF you DO use RFP ( see 4500 ) then you DO NOT need these redundant prefs . In fact ,
some even cause RFP to not behave as you would expect and alter your fingerprint .
Make sure they are RESET in about : config as per your Firefox version
2017-09-14 17:43:24 +12:00
* IF you DO NOT use RFP or are on ESR ... then turn on each ESR section below
2017-09-14 17:28:52 +12:00
* * * /
2017-09-16 10:28:22 +12:00
user _pref ( "_user.js.parrot" , "4600 syntax error: the parrot's crossed the Jordan" ) ;
2017-09-14 17:28:52 +12:00
/ * [ N O T E ] E S R 5 2 . x a n d n o n - R F P u s e r s r e p l a c e t h e * w i t h a s l a s h o n t h i s l i n e t o e n a b l e t h e s e
2017-09-14 17:43:24 +12:00
// FF55+
2017-10-06 21:44:19 +13:00
// 4601: [2514] spoof (or limit?) number of CPU cores (FF48+)
2017-09-14 17:43:24 +12:00
// [WARNING] *may* affect core chrome/Firefox performance, will affect content.
2018-03-15 02:22:58 +13:00
// [1] https://bugzilla.mozilla.org/1008453
2017-09-14 17:43:24 +12:00
// [2] https://trac.torproject.org/projects/tor/ticket/21675
// [3] https://trac.torproject.org/projects/tor/ticket/22127
// [4] https://html.spec.whatwg.org/multipage/workers.html#navigator.hardwareconcurrency
2017-09-15 18:39:43 +12:00
// user_pref("dom.maxHardwareConcurrency", 2);
2017-09-14 17:28:52 +12:00
// * * * /
2017-09-30 20:15:41 +13:00
// FF56+
2017-10-06 21:44:19 +13:00
// 4602: [2411] disable resource/navigation timing
2017-09-30 20:15:41 +13:00
user _pref ( "dom.enable_resource_timing" , false ) ;
2017-10-06 21:44:19 +13:00
// 4603: [2412] disable timing attacks
2017-09-30 20:15:41 +13:00
// [1] https://wiki.mozilla.org/Security/Reviews/Firefox/NavigationTimingAPI
user _pref ( "dom.enable_performance" , false ) ;
2017-10-06 21:44:19 +13:00
// 4604: [2512] disable device sensor API
2017-09-30 20:15:41 +13:00
// [WARNING] [SETUP] Optional protection depending on your device
// [1] https://trac.torproject.org/projects/tor/ticket/15758
// [2] https://blog.lukaszolejnik.com/stealing-sensitive-browser-data-with-the-w3c-ambient-light-sensor-api/
2018-03-15 02:22:58 +13:00
// [3] https://bugzilla.mozilla.org/buglist.cgi?bug_id=1357733,1292751
2017-09-30 20:15:41 +13:00
// user_pref("device.sensors.enabled", false);
2017-10-06 21:44:19 +13:00
// 4605: [2515] disable site specific zoom
2017-09-30 20:15:41 +13:00
// Zoom levels affect screen res and are highly fingerprintable. This does not stop you using
// zoom, it will just not use/remember any site specific settings. Zoom levels on new tabs
// and new windows are reset to default and only the current tab retains the current zoom
user _pref ( "browser.zoom.siteSpecific" , false ) ;
2017-10-06 21:44:19 +13:00
// 4606: [2501] disable gamepad API - USB device ID enumeration
2017-09-30 20:15:41 +13:00
// [WARNING] [SETUP] Optional protection depending on your connected devices
// [1] https://trac.torproject.org/projects/tor/ticket/13023
// user_pref("dom.gamepad.enabled", false);
2017-10-06 21:44:19 +13:00
// 4607: [2503] disable giving away network info (FF31+)
2017-09-30 20:15:41 +13:00
// e.g. bluetooth, cellular, ethernet, wifi, wimax, other, mixed, unknown, none
// [1] https://developer.mozilla.org/docs/Web/API/Network_Information_API
// [2] https://wicg.github.io/netinfo/
2018-03-15 02:22:58 +13:00
// [3] https://bugzilla.mozilla.org/960426
2017-09-30 20:15:41 +13:00
user _pref ( "dom.netinfo.enabled" , false ) ;
2017-11-16 06:46:35 +01:00
// 4608: [2021] disable the SpeechSynthesis (Text-to-Speech) part of the Web Speech API
2017-10-03 17:00:11 +02:00
// [1] https://developer.mozilla.org/docs/Web/API/Web_Speech_API
2017-09-30 20:15:41 +13:00
// [2] https://developer.mozilla.org/docs/Web/API/SpeechSynthesis
// [3] https://wiki.mozilla.org/HTML5_Speech_API
user _pref ( "media.webspeech.synth.enabled" , false ) ;
// * * * /
2017-11-20 13:49:19 +01:00
// FF57+
// 4610: [2506] disable video statistics - JS performance fingerprinting (FF25+)
// [1] https://trac.torproject.org/projects/tor/ticket/15757
2018-03-15 02:22:58 +13:00
// [2] https://bugzilla.mozilla.org/654550
2017-11-20 13:49:19 +01:00
user _pref ( "media.video_stats.enabled" , false ) ;
// 4611: [2509] disable touch events
// fingerprinting attack vector - leaks screen res & actual screen coordinates
// 0=disabled, 1=enabled, 2=autodetect
// [WARNING] [SETUP] Optional protection depending on your device
// [1] https://developer.mozilla.org/docs/Web/API/Touch_events
// [2] https://trac.torproject.org/projects/tor/ticket/10286
// user_pref("dom.w3c_touch_events.enabled", 0);
// * * * /
2018-03-13 19:26:39 +00:00
// FF59+
// 4612: [2511] disable MediaDevices change detection (FF51+)
// [1] https://developer.mozilla.org/docs/Web/Events/devicechange
// [2] https://developer.mozilla.org/docs/Web/API/MediaDevices/ondevicechange
user _pref ( "media.ondevicechange.enabled" , false ) ;
// * * * /
2018-05-04 17:11:34 +00:00
// FF60+
// 4613: [2011] disable WebGL debug info being available to websites
// [1] https://bugzilla.mozilla.org/1171228
// [2] https://developer.mozilla.org/docs/Web/API/WEBGL_debug_renderer_info
user _pref ( "webgl.enable-debug-renderer-info" , false ) ;
// * * * /
2017-09-14 17:28:52 +12:00
// ***/
2017-09-14 17:00:55 +12:00
/*** 4700: RFP (4500) ALTERNATIVES - NAVIGATOR / USER AGENT ( UA ) SPOOFING
2018-08-17 09:09:01 +00:00
This is FYI ONLY . These prefs are INSUFFICIENT ( a ) on their own , you need
to use RFP ( 4500 ) or an extension , in which case they become POINTLESS .
( a ) Many of the components that make up your UA can be derived by other means .
And when those values differ , you provide more bits and raise entropy .
Examples of leaks include navigator objects , date locale / formats , iframes ,
headers , tcp / ip attributes , feature detection , and * * many * * more .
ALL values below intentionally left blank - use RFP , or get a vetted , tested
extension and mimic RFP values to * lower * entropy , or randomize to * raise * it
2017-09-14 17:00:55 +12:00
* * * /
2017-09-16 10:28:22 +12:00
user _pref ( "_user.js.parrot" , "4700 syntax error: the parrot's taken 'is last bow" ) ;
2018-08-17 09:09:01 +00:00
/* 4701: navigator.userAgent ***/
// user_pref("general.useragent.override", ""); // (hidden pref)
2018-10-24 10:15:37 +00:00
/ * 4 7 0 2 : n a v i g a t o r . b u i l d I D
* Revealed build time down to the second . In FF64 + it now returns a fixed timestamp
* [ 1 ] https : //bugzilla.mozilla.org/583181
* [ 2 ] https : //www.fxsitecompat.com/en-CA/docs/2018/navigator-buildid-now-returns-a-fixed-timestamp/ ***/
2018-08-17 09:09:01 +00:00
// user_pref("general.buildID.override", ""); // (hidden pref)
2017-09-14 17:00:55 +12:00
/* 4703: navigator.appName ***/
2018-08-17 09:09:01 +00:00
// user_pref("general.appname.override", ""); // (hidden pref)
2017-09-14 17:00:55 +12:00
/* 4704: navigator.appVersion ***/
2018-08-17 09:09:01 +00:00
// user_pref("general.appversion.override", ""); // (hidden pref)
/* 4705: navigator.platform ***/
// user_pref("general.platform.override", ""); // (hidden pref)
/* 4706: navigator.oscpu ***/
// user_pref("general.oscpu.override", ""); // (hidden pref)
2017-09-14 17:00:55 +12:00
2018-03-02 16:53:39 +13:00
/ * * * 5 0 0 0 : P E R S O N A L [ S E T U P ]
Non - project related but useful . If any of these interest you , add them to your overrides * * * /
2017-09-16 10:28:22 +12:00
user _pref ( "_user.js.parrot" , "5000 syntax error: this is an ex-parrot!" ) ;
2018-05-29 02:25:54 +00:00
/* WELCOME & WHAT's NEW NOTICES ***/
// user_pref("browser.startup.homepage_override.mstone", "ignore"); // master switch
// user_pref("startup.homepage_welcome_url", "");
// user_pref("startup.homepage_welcome_url.additional", "");
// user_pref("startup.homepage_override_url", ""); // What's New page after updates
2018-03-02 16:53:39 +13:00
/* WARNINGS ***/
// user_pref("browser.tabs.warnOnClose", false);
// user_pref("browser.tabs.warnOnCloseOtherTabs", false);
// user_pref("browser.tabs.warnOnOpen", false);
2017-06-17 09:13:14 +02:00
// user_pref("full-screen-api.warning.delay", 0);
// user_pref("full-screen-api.warning.timeout", 0);
2018-03-02 16:53:39 +13:00
/* APPEARANCE ***/
// user_pref("browser.download.autohideButton", false); // (FF57+)
// user_pref("toolkit.cosmeticAnimations.enabled", false); // (FF55+)
/* CONTENT BEHAVIOR ***/
// user_pref("accessibility.typeaheadfind", true); // enable "Find As You Type"
// user_pref("clipboard.autocopy", false); // disable autocopy default [LINUX]
// user_pref("layout.spellcheckDefault", 2); // 0=none, 1-multi-line, 2=multi-line & single-line
/* UX BEHAVIOR ***/
// user_pref("browser.backspace_action", 2); // 0=previous page, 1=scroll up, 2=do nothing
// user_pref("browser.tabs.closeWindowWithLastTab", false);
// user_pref("browser.tabs.loadBookmarksInTabs", true); // open bookmarks in a new tab (FF57+)
2018-11-12 00:06:19 +00:00
// user_pref("browser.urlbar.decodeURLsOnCopy", true); // see Bugzilla 1320061 (FF53+)
2018-03-02 16:53:39 +13:00
// user_pref("general.autoScroll", false); // middle-click enabling auto-scrolling [WINDOWS] [MAC]
2018-04-29 19:21:58 +00:00
// user_pref("ui.key.menuAccessKey", 0); // disable alt key toggling the menu bar [RESTART]
2018-03-02 16:53:39 +13:00
/* OTHER ***/
// user_pref("browser.bookmarks.max_backups", 2);
2018-03-02 05:10:11 +00:00
// user_pref("identity.fxaccounts.enabled", false); // disable and hide Firefox Accounts and Sync (FF60+) [RESTART]
2018-03-02 16:53:39 +13:00
// user_pref("network.manage-offline-status", false); // see Bugzilla 620472
// user_pref("reader.parse-on-load.enabled", false); // "Reader View"
// user_pref("xpinstall.signatures.required", false); // enforced extension signing (Nightly/ESR)
2017-06-17 09:13:14 +02:00
/*** 9999: DEPRECATED / REMOVED / LEGACY / RENAMED
Documentation denoted as [ - ] . Numbers may be re - used . See [ 1 ] for a link - clickable ,
2017-08-10 23:28:03 +12:00
viewer - friendly version of the deprecated bugzilla tickets . The original state of each pref
has been preserved , or changed to match the current setup , but you are advised to review them .
[ NOTE ] Up to FF53 , to enable a section change / * FFxx to // FFxx
For FF53 on , we have bundled releases to cater for ESR . Change / * to // on the first line
2017-06-17 09:13:14 +02:00
[ 1 ] https : //github.com/ghacksuserjs/ghacks-user.js/issues/123
* * * /
2017-09-16 10:28:22 +12:00
user _pref ( "_user.js.parrot" , "9999 syntax error: the parrot's deprecated!" ) ;
2017-06-17 09:13:14 +02:00
/ * F F 4 2 a n d o l d e r
2018-05-08 04:13:53 +12:00
// 2604: (25+) disable page thumbnails - replaced by browser.pagethumbnails.capturing_disabled
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/897811
2017-06-17 09:13:14 +02:00
user _pref ( "pageThumbs.enabled" , false ) ;
// 2503: (31+) disable network API - replaced by dom.netinfo.enabled
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/960426
2017-06-17 09:13:14 +02:00
user _pref ( "dom.network.enabled" , false ) ;
2018-05-16 18:31:28 +02:00
// 2600's: (35+) disable WebSockets
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/1091016
2017-06-17 09:13:14 +02:00
user _pref ( "network.websocket.enabled" , false ) ;
// 1610: (36+) set DNT "value" to "not be tracked" (FF21+)
// [1] http://kb.mozillazine.org/Privacy.donottrackheader.value
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/1042135#c101
2017-06-17 09:13:14 +02:00
// user_pref("privacy.donottrackheader.value", 1);
// 2023: (37+) disable camera autofocus callback
2018-02-08 15:33:05 +00:00
// The API will be superseded by the WebRTC Capture and Stream API
2017-08-31 17:27:04 +12:00
// [1] https://developer.mozilla.org/docs/Archive/B2G_OS/API/CameraControl
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/1107683
2017-06-17 09:13:14 +02:00
user _pref ( "camera.control.autofocus_moving_callback.enabled" , false ) ;
// 0415: (41+) disable reporting URLs (safe browsing) - removed or replaced by various
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/1109475
2017-06-17 09:13:14 +02:00
user _pref ( "browser.safebrowsing.reportErrorURL" , "" ) ; // browser.safebrowsing.reportPhishMistakeURL
user _pref ( "browser.safebrowsing.reportGenericURL" , "" ) ; // removed
user _pref ( "browser.safebrowsing.reportMalwareErrorURL" , "" ) ; // browser.safebrowsing.reportMalwareMistakeURL
user _pref ( "browser.safebrowsing.reportMalwareURL" , "" ) ; // removed
user _pref ( "browser.safebrowsing.reportURL" , "" ) ; // removed
2018-03-13 09:04:54 +00:00
// 0702: (41+) disable HTTP2 (draft)
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/1132357
2018-03-13 09:04:54 +00:00
user _pref ( "network.http.spdy.enabled.http2draft" , false ) ;
2017-06-17 09:13:14 +02:00
// 1804: (41+) disable plugin enumeration
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/1169945
2017-06-17 09:13:14 +02:00
user _pref ( "plugins.enumerable_names" , "" ) ;
// 2803: (42+) clear passwords on shutdown
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/1102184
2017-06-17 09:13:14 +02:00
// user_pref("privacy.clearOnShutdown.passwords", false);
2017-09-13 04:56:21 +12:00
// 5002: (42+) disable warning when a domain requests full screen
2017-06-17 09:13:14 +02:00
// replaced by setting full-screen-api.warning.timeout to zero
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/1160017
2017-06-17 09:13:14 +02:00
// user_pref("full-screen-api.approval-required", false);
// ***/
/ * F F 4 3
// 0410's: disable safebrowsing urls & updates - replaced by various
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/1107372
2017-06-17 09:13:14 +02:00
// user_pref("browser.safebrowsing.gethashURL", ""); // browser.safebrowsing.provider.google.gethashURL
// user_pref("browser.safebrowsing.updateURL", ""); // browser.safebrowsing.provider.google.updateURL
user _pref ( "browser.safebrowsing.malware.reportURL" , "" ) ; // browser.safebrowsing.provider.google.reportURL
// 0420's: disable tracking protection - replaced by various
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/1107372
2017-06-17 09:13:14 +02:00
// user_pref("browser.trackingprotection.gethashURL", ""); // browser.safebrowsing.provider.mozilla.gethashURL
// user_pref("browser.trackingprotection.updateURL", ""); // browser.safebrowsing.provider.mozilla.updateURL
// 1803: remove plugin finder service
// [1] http://kb.mozillazine.org/Pfs.datasource.url
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/1202193
2017-06-17 09:13:14 +02:00
user _pref ( "pfs.datasource.url" , "" ) ;
2017-09-13 04:56:21 +12:00
// 5003: disable new search panel UI
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/1119250
2017-06-17 09:13:14 +02:00
// user_pref("browser.search.showOneOffButtons", false);
// ***/
/ * F F 4 4
// 0414: disable safebrowsing's real-time binary checking (google) (FF43+)
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/1237103
2017-06-17 09:13:14 +02:00
user _pref ( "browser.safebrowsing.provider.google.appRepURL" , "" ) ; // browser.safebrowsing.appRepURL
// 1200's: block rc4 whitelist
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/1215796
2017-06-17 09:13:14 +02:00
user _pref ( "security.tls.insecure_fallback_hosts.use_static_list" , false ) ;
2018-05-16 18:31:28 +02:00
// 2300's: disable SharedWorkers
2017-08-30 17:07:43 +12:00
// [1] https://trac.torproject.org/projects/tor/ticket/15562
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/1207635
2017-06-17 09:13:14 +02:00
user _pref ( "dom.workers.sharedWorkers.enabled" , false ) ;
// 2403: disable scripts changing images
2017-08-30 17:07:43 +12:00
// [TEST] https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_img_src2
2017-06-17 09:13:14 +02:00
// [WARNING] Will break some sites such as Google Maps and a lot of web apps
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/773429
2017-06-17 09:13:14 +02:00
// user_pref("dom.disable_image_src_set", true);
// ***/
/ * F F 4 5
// 1021b: disable deferred level of storing extra session data 0=all 1=http-only 2=none
// extra session data contains contents of forms, scrollbar positions, cookies and POST data
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/1235379
2017-06-17 09:13:14 +02:00
user _pref ( "browser.sessionstore.privacy_level_deferred" , 2 ) ;
// ***/
/ * F F 4 6
2018-03-13 17:52:14 +01:00
// 0333: disable health report
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/1234526
2017-06-17 09:13:14 +02:00
user _pref ( "datareporting.healthreport.service.enabled" , false ) ; // (hidden pref)
user _pref ( "datareporting.healthreport.documentServerURI" , "" ) ; // (hidden pref)
// 0334b: disable FHR (Firefox Health Report) v2 data being sent to Mozilla servers
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/1234522
2017-06-17 09:13:14 +02:00
user _pref ( "datareporting.policy.dataSubmissionEnabled.v2" , false ) ;
// 0414: disable safebrowsing pref - replaced by browser.safebrowsing.downloads.remote.url
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/1239587
2017-06-17 09:13:14 +02:00
user _pref ( "browser.safebrowsing.appRepURL" , "" ) ; // Google application reputation check
// 0420: disable polaris (part of Tracking Protection, never used in stable)
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/1235565
2017-06-17 09:13:14 +02:00
// user_pref("browser.polaris.enabled", false);
2017-07-19 05:35:00 +12:00
// 0510: disable "Pocket" - replaced by extensions.pocket.*
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/1215694
2017-07-19 05:35:00 +12:00
user _pref ( "browser.pocket.enabled" , false ) ;
user _pref ( "browser.pocket.api" , "" ) ;
user _pref ( "browser.pocket.site" , "" ) ;
user _pref ( "browser.pocket.oAuthConsumerKey" , "" ) ;
2017-06-17 09:13:14 +02:00
// ***/
/ * F F 4 7
// 0330b: set unifiedIsOptIn to make sure telemetry respects OptIn choice and that telemetry
// is enabled ONLY for people that opted into it, even if unified Telemetry is enabled
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/1236580
2017-06-17 09:13:14 +02:00
user _pref ( "toolkit.telemetry.unifiedIsOptIn" , true ) ; // (hidden pref)
// 0333b: disable about:healthreport page UNIFIED
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/1236580
2017-06-17 09:13:14 +02:00
user _pref ( "datareporting.healthreport.about.reportUrlUnified" , "data:text/plain," ) ;
// 0807: disable history manipulation
2017-08-31 17:27:04 +12:00
// [1] https://developer.mozilla.org/docs/Web/API/History_API
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/1249542
2017-06-17 09:13:14 +02:00
user _pref ( "browser.history.allowPopState" , false ) ;
user _pref ( "browser.history.allowPushState" , false ) ;
user _pref ( "browser.history.allowReplaceState" , false ) ;
// ***/
/ * F F 4 8
// 0806: disable 'unified complete': 'Search with [default search engine]'
// [-] http://techdows.com/2016/05/firefox-unified-complete-aboutconfig-preference-removed.html
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/1181078
2017-06-17 09:13:14 +02:00
user _pref ( "browser.urlbar.unifiedcomplete" , false ) ;
// ***/
/ * F F 4 9
// 0372: disable "Hello"
2017-08-31 17:27:04 +12:00
// [1] https://www.mozilla.org/privacy/archive/hello/2016-03/
2017-06-17 09:13:14 +02:00
// [2] https://security.stackexchange.com/questions/94284/how-secure-is-firefox-hello
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/1287827
2017-06-17 09:13:14 +02:00
user _pref ( "loop.enabled" , false ) ;
user _pref ( "loop.server" , "" ) ;
user _pref ( "loop.feedback.formURL" , "" ) ;
user _pref ( "loop.feedback.manualFormURL" , "" ) ;
user _pref ( "loop.facebook.appId" , "" ) ;
user _pref ( "loop.facebook.enabled" , false ) ;
user _pref ( "loop.facebook.fallbackUrl" , "" ) ;
user _pref ( "loop.facebook.shareUrl" , "" ) ;
user _pref ( "loop.logDomains" , false ) ;
2018-03-26 19:04:31 +02:00
// 2201: disable new window scrollbars being hidden
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/1257887
2017-06-17 09:13:14 +02:00
user _pref ( "dom.disable_window_open_feature.scrollbars" , true ) ;
// 2303: disable push notification (UDP wake-up)
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/1265914
2017-06-17 09:13:14 +02:00
user _pref ( "dom.push.udp.wakeupEnabled" , false ) ;
// ***/
/ * F F 5 0
// 0101: disable Windows10 intro on startup [WINDOWS]
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/1274633
2017-06-17 09:13:14 +02:00
user _pref ( "browser.usedOnWindows10.introURL" , "" ) ;
// 0308: disable plugin update notifications
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/1277905
2017-06-17 09:13:14 +02:00
user _pref ( "plugins.update.notifyUser" , false ) ;
// 0410: disable "Block dangerous and deceptive content" - replaced by browser.safebrowsing.phishing.enabled
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/1025965
2017-06-17 09:13:14 +02:00
// user_pref("browser.safebrowsing.enabled", false);
// 1266: disable rc4 ciphers
// [1] https://trac.torproject.org/projects/tor/ticket/17369
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/1268728
2017-06-17 09:13:14 +02:00
// [-] https://www.fxsitecompat.com/en-CA/docs/2016/rc4-support-has-been-completely-removed/
user _pref ( "security.ssl3.ecdhe_ecdsa_rc4_128_sha" , false ) ;
user _pref ( "security.ssl3.ecdhe_rsa_rc4_128_sha" , false ) ;
user _pref ( "security.ssl3.rsa_rc4_128_md5" , false ) ;
user _pref ( "security.ssl3.rsa_rc4_128_sha" , false ) ;
// 1809: remove Mozilla's plugin update URL
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/1277905
2017-06-17 09:13:14 +02:00
user _pref ( "plugins.update.url" , "" ) ;
// ***/
/ * F F 5 1
2018-03-13 09:04:54 +00:00
// 0702: disable SPDY
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/1248197
2018-03-13 09:04:54 +00:00
user _pref ( "network.http.spdy.enabled.v3-1" , false ) ;
2017-06-17 09:13:14 +02:00
// 1851: delay play of videos until they're visible
2018-03-15 02:22:58 +13:00
// [1] https://bugzilla.mozilla.org/1180563
// [-] https://bugzilla.mozilla.org/1262053
2017-06-17 09:13:14 +02:00
user _pref ( "media.block-play-until-visible" , true ) ;
// 2504: disable virtual reality devices
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/1250244
2017-06-17 09:13:14 +02:00
user _pref ( "dom.vr.oculus050.enabled" , false ) ;
// ***/
/ * F F 5 2
// 1601: disable referer from an SSL Website
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/1308725
2017-06-17 09:13:14 +02:00
user _pref ( "network.http.sendSecureXSiteReferrer" , false ) ;
// 1850: disable Adobe EME "Primetime CDM" (Content Decryption Module)
// [1] https://trac.torproject.org/projects/tor/ticket/16285
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/buglist.cgi?bug_id=1329538,1337121 // FF52
// [-] https://bugzilla.mozilla.org/1329543 // FF53
2017-06-17 09:13:14 +02:00
user _pref ( "media.gmp-eme-adobe.enabled" , false ) ;
user _pref ( "media.gmp-eme-adobe.visible" , false ) ;
user _pref ( "media.gmp-eme-adobe.autoupdate" , false ) ;
// 2405: disable WebTelephony API
// [1] https://wiki.mozilla.org/WebAPI/Security/WebTelephony
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/1309719
2017-06-17 09:13:14 +02:00
user _pref ( "dom.telephony.enabled" , false ) ;
// ***/
2018-09-09 20:33:43 +00:00
/ * F F 5 3
2017-06-17 09:13:14 +02:00
// 1265: block rc4 fallback
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/1130670
2017-06-17 09:13:14 +02:00
user _pref ( "security.tls.unrestricted_rc4_fallback" , false ) ;
// 1806: disable Acrobat, Quicktime, WMP (the string = min version number allowed)
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/buglist.cgi?bug_id=1317108,1317109,1317110
2017-06-17 09:13:14 +02:00
user _pref ( "plugin.scan.Acrobat" , "99999" ) ;
user _pref ( "plugin.scan.Quicktime" , "99999" ) ;
user _pref ( "plugin.scan.WindowsMediaPlayer" , "99999" ) ;
// 2022: disable screensharing
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/1329562
2017-06-17 09:13:14 +02:00
user _pref ( "media.getusermedia.screensharing.allow_on_old_platforms" , false ) ;
// 2507: disable keyboard fingerprinting
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/1322736
2017-06-17 09:13:14 +02:00
user _pref ( "dom.beforeAfterKeyboardEvent.enabled" , false ) ;
2018-09-09 20:33:43 +00:00
// ***/
/ * F F 5 4
2017-06-17 09:13:14 +02:00
// 0415: disable reporting URLs (safe browsing)
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/1288633
2017-06-17 09:13:14 +02:00
user _pref ( "browser.safebrowsing.reportMalwareMistakeURL" , "" ) ;
user _pref ( "browser.safebrowsing.reportPhishMistakeURL" , "" ) ;
// 1830: block websites detecting DRM is disabled
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/1242321
2017-06-17 09:13:14 +02:00
user _pref ( "media.eme.apiVisible" , false ) ;
// 2425: disable Archive Reader API
2017-07-25 05:15:37 +12:00
// i.e. reading archive contents directly in the browser, through DOM file objects
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/1342361
2017-06-17 09:13:14 +02:00
user _pref ( "dom.archivereader.enabled" , false ) ;
2018-09-09 20:33:43 +00:00
// ***/
/ * F F 5 5
2017-08-07 18:43:47 +12:00
// 0209: disable geolocation on non-secure origins (FF54+)
2018-03-14 14:03:04 +00:00
// [1] https://bugzilla.mozilla.org/1269531
// [-] https://bugzilla.mozilla.org/1072859
2017-08-07 18:43:47 +12:00
user _pref ( "geo.security.allowinsecure" , false ) ;
// 0336: disable "Heartbeat" (Mozilla user rating telemetry) (FF37+)
// [1] https://trac.torproject.org/projects/tor/ticket/18738
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/1361578
2017-08-07 18:43:47 +12:00
user _pref ( "browser.selfsupport.enabled" , false ) ; // (hidden pref)
user _pref ( "browser.selfsupport.url" , "" ) ;
// 0360: disable new tab "pings"
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/1241390
2017-08-07 18:43:47 +12:00
user _pref ( "browser.newtabpage.directory.ping" , "data:text/plain," ) ;
// 0861: disable saving form history on secure websites
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/1361220
2017-08-07 18:43:47 +12:00
user _pref ( "browser.formfill.saveHttpsForms" , false ) ;
// 0863: disable Form Autofill (FF54+) - replaced by extensions.formautofill.*
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/1364334
2017-08-07 18:43:47 +12:00
user _pref ( "browser.formautofill.enabled" , false ) ;
// 2410: disable User Timing API
// [1] https://trac.torproject.org/projects/tor/ticket/16336
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/1344669
2017-08-07 18:43:47 +12:00
user _pref ( "dom.enable_user_timing" , false ) ;
// 2507: disable keyboard fingerprinting (FF38+) (physical keyboards)
// The Keyboard API allows tracking the "read parameter" of pressed keys in forms on
// web pages. These parameters vary between types of keyboard layouts such as QWERTY,
// AZERTY, Dvorak, and between various languages, e.g. German vs English.
// [WARNING] Don't use if Android + physical keyboard
2017-08-31 17:27:04 +12:00
// [1] https://developer.mozilla.org/docs/Web/API/KeyboardEvent/code
2017-08-07 18:43:47 +12:00
// [2] https://www.privacy-handbuch.de/handbuch_21v.htm
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/1352949
2017-08-07 18:43:47 +12:00
user _pref ( "dom.keyboardevent.code.enabled" , false ) ;
2017-09-13 04:56:21 +12:00
// 5015: disable tab animation - replaced by toolkit.cosmeticAnimations.enabled
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/1352069
2017-08-07 18:43:47 +12:00
user _pref ( "browser.tabs.animate" , false ) ;
2017-09-13 04:56:21 +12:00
// 5016: disable fullscreeen animation - replaced by toolkit.cosmeticAnimations.enabled
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/1352069
2017-08-07 18:43:47 +12:00
user _pref ( "browser.fullscreen.animate" , false ) ;
2018-09-09 20:33:43 +00:00
// ***/
/ * F F 5 6
2017-09-28 21:27:40 +13:00
// 0515: disable Screenshots (rollout pref only) (FF54+)
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/1386333
2017-09-28 21:27:40 +13:00
// user_pref("extensions.screenshots.system-disabled", true);
// 0517: disable Form Autofill (FF55+) - replaced by extensions.formautofill.available
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/1385201
2017-09-28 21:27:40 +13:00
user _pref ( "extensions.formautofill.experimental" , false ) ;
2018-09-09 20:33:43 +00:00
// ***/
/ * F F 5 7
2017-11-16 17:03:08 +13:00
// 0374: disable "social" integration
// [1] https://developer.mozilla.org/docs/Mozilla/Projects/Social_API
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/buglist.cgi?bug_id=1388902,1406193 (some leftovers were removed in FF58)
2017-11-16 17:03:08 +13:00
user _pref ( "social.whitelist" , "" ) ;
user _pref ( "social.toast-notifications.enabled" , false ) ;
user _pref ( "social.shareDirectory" , "" ) ;
user _pref ( "social.remote-install.enabled" , false ) ;
user _pref ( "social.directories" , "" ) ;
user _pref ( "social.share.activationPanelEnabled" , false ) ;
user _pref ( "social.enabled" , false ) ; // (hidden pref)
// 1830: disable DRM's EME WideVineAdapter
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/1395468
2017-11-16 17:03:08 +13:00
user _pref ( "media.eme.chromium-api.enabled" , false ) ; // (FF55+)
2018-05-08 04:13:53 +12:00
// 2608: disable WebIDE extension downloads (Valence)
2017-11-16 17:03:08 +13:00
// [1] https://trac.torproject.org/projects/tor/ticket/16222
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/1393497
2017-11-16 17:03:08 +13:00
user _pref ( "devtools.webide.autoinstallFxdtAdapters" , false ) ;
2018-05-16 18:31:28 +02:00
// 2600's: disable SimpleServiceDiscovery - which can bypass proxy settings - e.g. Roku
2017-11-16 17:03:08 +13:00
// [1] https://trac.torproject.org/projects/tor/ticket/16222
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/1393582
2017-11-16 17:03:08 +13:00
user _pref ( "browser.casting.enabled" , false ) ;
// 5022: hide recently bookmarked items (you still have the original bookmarks) (FF49+)
2018-03-15 02:22:58 +13:00
// [-] https://bugzilla.mozilla.org/1401238
2017-11-16 17:03:08 +13:00
user _pref ( "browser.bookmarks.showRecentlyBookmarked" , false ) ;
2018-09-09 20:33:43 +00:00
// ***/
/ * F F 5 9
2018-03-13 18:56:22 +00:00
// 0203: disable using OS locale, force APP locale - replaced by intl.locale.requested
// [-] https://bugzilla.mozilla.org/1414390
user _pref ( "intl.locale.matchOS" , false ) ;
// 0204: set APP locale - replaced by intl.locale.requested
// [-] https://bugzilla.mozilla.org/1414390
user _pref ( "general.useragent.locale" , "en-US" ) ;
2018-03-13 17:52:14 +01:00
// 0333b: disable about:healthreport page (which connects to Mozilla for locale/css+js+json)
// If you have disabled health reports, then this about page is useless - disable it
// If you want to see what health data is present, then this must be set at default
// [-] https://bugzilla.mozilla.org/1352497
user _pref ( "datareporting.healthreport.about.reportUrl" , "data:text/plain," ) ;
// 0511: disable FlyWeb (FF49+)
// Flyweb is a set of APIs for advertising and discovering local-area web servers
// [1] https://flyweb.github.io/
// [2] https://wiki.mozilla.org/FlyWeb/Security_scenarios
// [3] https://www.ghacks.net/2016/07/26/firefox-flyweb/
// [-] https://bugzilla.mozilla.org/1374574
user _pref ( "dom.flyweb.enabled" , false ) ;
2018-08-29 17:10:28 +00:00
// 1007: disable randomized FF HTTP cache decay experiments
// [1] https://trac.torproject.org/projects/tor/ticket/13575
// [-] https://bugzilla.mozilla.org/1430197
user _pref ( "browser.cache.frecency_experiment" , - 1 ) ;
2018-03-13 17:52:14 +01:00
// 1242: enable Mixed-Content-Blocker to use the HSTS cache but disable the HSTS Priming requests (FF51+)
// Allow resources from domains with an existing HSTS cache record or in the HSTS preload list
// to be upgraded to HTTPS internally but disable sending out HSTS Priming requests, because
// those may cause noticeable delays e.g. requests time out or are not handled well by servers
// [NOTE] If you want to use the priming requests make sure 'use_hsts' is also true
2018-03-15 02:22:58 +13:00
// [1] https://bugzilla.mozilla.org/1246540#c145
2018-03-13 17:52:14 +01:00
// [-] https://bugzilla.mozilla.org/1424917
user _pref ( "security.mixed_content.use_hsts" , true ) ;
user _pref ( "security.mixed_content.send_hsts_priming" , false ) ;
2018-03-13 18:56:22 +00:00
// 1606: set the default Referrer Policy - replaced by network.http.referer.defaultPolicy
// [-] https://bugzilla.mozilla.org/587523
user _pref ( "network.http.referer.userControlPolicy" , 3 ) ; // (FF53-FF58) default: 3
2018-03-13 17:52:14 +01:00
// 1804: disable plugins using external/untrusted scripts with XPCOM or XPConnect
2018-03-14 11:05:37 +00:00
// [-] (part8) https://bugzilla.mozilla.org/1416703#c21
2018-03-13 17:52:14 +01:00
user _pref ( "security.xpconnect.plugin.unrestricted" , false ) ;
2018-03-13 18:56:22 +00:00
// 2022: disable screensharing domain whitelist
2018-03-14 11:05:37 +00:00
// [-] https://bugzilla.mozilla.org/1411742
2018-03-13 18:56:22 +00:00
user _pref ( "media.getusermedia.screensharing.allowed_domains" , "" ) ;
2018-03-13 17:52:14 +01:00
// 2023: disable camera stuff
2018-03-14 11:05:37 +00:00
// [-] (part7) https://bugzilla.mozilla.org/1416703#c21
2018-03-13 17:52:14 +01:00
user _pref ( "camera.control.face_detection.enabled" , false ) ;
2018-03-26 19:04:31 +02:00
// 2202: prevent scripts from changing the status text
2018-03-13 18:56:22 +00:00
// [-] https://bugzilla.mozilla.org/1425999
user _pref ( "dom.disable_window_status_change" , true ) ;
2018-03-13 17:52:14 +01:00
// 2416: disable idle observation
2018-03-14 11:05:37 +00:00
// [-] (part7) https://bugzilla.mozilla.org/1416703#c21
2018-03-13 17:52:14 +01:00
user _pref ( "dom.idle-observers-api.enabled" , false ) ;
2018-09-09 20:33:43 +00:00
// ***/
/ * F F 6 0
2018-05-04 16:56:14 +00:00
// 0360: disable new tab tile ads & preload & marketing junk
// [-] https://bugzilla.mozilla.org/buglist.cgi?bug_id=1370930,1433133
user _pref ( "browser.newtabpage.directory.source" , "data:text/plain," ) ;
user _pref ( "browser.newtabpage.enhanced" , false ) ;
user _pref ( "browser.newtabpage.introShown" , true ) ;
2018-05-16 18:31:28 +02:00
// 0512: disable Shield (FF53+) - replaced internally by Normandy (see 0503)
2018-05-04 21:42:47 +00:00
// Shield is an telemetry system (including Heartbeat) that can also push and test "recipes"
// [1] https://wiki.mozilla.org/Firefox/Shield
// [2] https://github.com/mozilla/normandy
// [-] https://bugzilla.mozilla.org/1436113
user _pref ( "extensions.shield-recipe-client.enabled" , false ) ;
user _pref ( "extensions.shield-recipe-client.api_url" , "" ) ;
2018-05-04 16:56:14 +00:00
// 0514: disable Activity Stream (FF54+)
// [-] https://bugzilla.mozilla.org/1433324
user _pref ( "browser.newtabpage.activity-stream.enabled" , false ) ;
// 2301: disable workers
2018-06-20 05:05:48 +00:00
// [WARNING] Disabling workers *will* break sites (e.g. Google Street View, Twitter)
2018-05-04 16:56:14 +00:00
// [NOTE] CVE-2016-5259, CVE-2016-2812, CVE-2016-1949, CVE-2016-5287 (fixed)
// [-] https://bugzilla.mozilla.org/1434934
user _pref ( "dom.workers.enabled" , false ) ;
2018-05-16 18:31:28 +02:00
// 5000's: open "page/selection source" in a new window
2018-05-04 16:56:14 +00:00
// [-] https://bugzilla.mozilla.org/1418403
// user_pref("view_source.tab", false);
2017-08-07 18:43:47 +12:00
// ***/
2017-09-16 05:43:45 +12:00
2018-07-04 09:41:30 +00:00
/ * E S R 6 0 . x s t i l l u s e s a l l t h e f o l l o w i n g p r e f s
// [NOTE] replace the * with a slash in the line above to re-enable them
// FF61
// 0501: disable experiments
// [1] https://wiki.mozilla.org/Telemetry/Experiments
// [-] https://bugzilla.mozilla.org/buglist.cgi?bug_id=1420908,1450801
user _pref ( "experiments.enabled" , false ) ;
user _pref ( "experiments.manifest.uri" , "" ) ;
user _pref ( "experiments.supported" , false ) ;
user _pref ( "experiments.activeExperiment" , false ) ;
// 2612: disable remote JAR files being opened, regardless of content type (FF42+)
// [1] https://bugzilla.mozilla.org/1173171
// [2] https://www.fxsitecompat.com/en-CA/docs/2015/jar-protocol-support-has-been-disabled-by-default/
2018-07-11 13:59:52 +02:00
// [-] https://bugzilla.mozilla.org/1427726
2018-07-04 09:41:30 +00:00
user _pref ( "network.jar.block-remote-files" , true ) ;
// 2613: disable JAR from opening Unsafe File Types
2018-07-11 13:59:52 +02:00
// [-] https://bugzilla.mozilla.org/1427726
2018-07-04 09:41:30 +00:00
user _pref ( "network.jar.open-unsafe-types" , false ) ;
// * * * /
2018-09-05 09:30:42 +00:00
// FF62
// 1803: disable Java plugin
// [-] (part5) https://bugzilla.mozilla.org/1461243
user _pref ( "plugin.state.java" , 0 ) ;
// * * * /
2018-10-23 15:45:31 +00:00
// FF63
// 0202: disable GeoIP-based search results
// [NOTE] May not be hidden if Firefox has changed your settings due to your locale
// [-] https://bugzilla.mozilla.org/1462015
user _pref ( "browser.search.countryCode" , "US" ) ; // (hidden pref)
// 0301a: disable auto-update checks for Firefox
// [SETTING] General>Firefox Updates>Never check for updates
// [-] https://bugzilla.mozilla.org/1420514
// user_pref("app.update.enabled", false);
// 0402: enable Kinto blocklist updates (FF50+)
// What is Kinto?: https://wiki.mozilla.org/Firefox/Kinto#Specifications
// As Firefox transitions to Kinto, the blocklists have been broken down into entries for certs to be
// revoked, extensions and plugins to be disabled, and gfx environments that cause problems or crashes
// [-] https://bugzilla.mozilla.org/1458917
user _pref ( "services.blocklist.update_enabled" , true ) ;
// 0503: disable "Savant" Shield study (FF61+)
// [-] https://bugzilla.mozilla.org/1457226
user _pref ( "shield.savant.enabled" , false ) ;
// 1031: disable favicons in tabs and new bookmarks - merged into browser.chrome.site_icons
// [-] https://bugzilla.mozilla.org/1453751
// user_pref("browser.chrome.favicons", false);
// 2030: disable auto-play of HTML5 media - replaced by media.autoplay.default
// [WARNING] This may break video playback on various sites
// [-] https://bugzilla.mozilla.org/1470082
user _pref ( "media.autoplay.enabled" , false ) ;
// 2704: set cookie lifetime in days (see 2703)
// [-] https://bugzilla.mozilla.org/1457170
// user_pref("network.cookie.lifetime.days", 90); // default: 90
// 5000's: enable "Ctrl+Tab cycles through tabs in recently used order" - replaced by browser.ctrlTab.recentlyUsedOrder
// [-] https://bugzilla.mozilla.org/1473595
// user_pref("browser.ctrlTab.previews", true);
// * * * /
2018-07-04 09:41:30 +00:00
// ***/
2017-09-16 05:43:45 +12:00
/* END: internal custom pref to test for syntax errors ***/
2017-09-16 10:28:22 +12:00
user _pref ( "_user.js.parrot" , "SUCCESS: No no he's not dead, he's, he's restin'!" ) ;