mirror of
https://github.com/arkenfox/user.js.git
synced 2024-10-01 01:35:52 -04:00
misc (#1040)
* misc - cleanup of old release notation in comments: e.g. if it's not applicable to ESR78+ - same with default version info - simplify and save bytes on section 4700 - update 4500 header - and unify the message about using extensions as counterproductive - letterboxing - provide info on stepped ranged (and drop crap about FF67) - don't judge users who dislike seeing margins (I don't like them either, but I force my window to exact dimensions and stay there) - screenshots uploading was disabled in FF67+ : [67 release notes](https://www.mozilla.org/en-US/firefox/67.0/releasenotes/) - the pref is still there (default false) but so far I'm 99% sure this pref now does anything - I will add it to the scatchpad script if this change sticks * simplify 4500 RFP, see #1041 * update removed script * tidy readme, see #1045 - also put readme before releases * RIP FX Site Compat * clean out RFP Alts info: the information is redundant: it's already in the readme
This commit is contained in:
parent
f591a8adf8
commit
0adfddd1e2
@ -1,7 +1,7 @@
|
|||||||
/***
|
/***
|
||||||
This will reset the preferences that have been removed completely from the arkenfox user.js.
|
This will reset the preferences that have been removed completely from the arkenfox user.js.
|
||||||
|
|
||||||
Last updated: 2-Oct-2020
|
Last updated: 18-Oct-2020
|
||||||
|
|
||||||
For instructions see:
|
For instructions see:
|
||||||
https://github.com/arkenfox/user.js/wiki/3.1-Resetting-Inactive-Prefs-[Scripts]
|
https://github.com/arkenfox/user.js/wiki/3.1-Resetting-Inactive-Prefs-[Scripts]
|
||||||
@ -225,6 +225,10 @@
|
|||||||
'browser.urlbar.usepreloadedtopurls.enabled',
|
'browser.urlbar.usepreloadedtopurls.enabled',
|
||||||
/* 80 */
|
/* 80 */
|
||||||
'dom.IntersectionObserver.enabled',
|
'dom.IntersectionObserver.enabled',
|
||||||
|
/* 82-beta */
|
||||||
|
'extensions.screenshots.upload-disabled',
|
||||||
|
'security.ssl3.dhe_rsa_aes_128_sha',
|
||||||
|
'security.ssl3.dhe_rsa_aes_256_sha',
|
||||||
/* reset parrot: check your open about:config after running the script */
|
/* reset parrot: check your open about:config after running the script */
|
||||||
'_user.js.parrot'
|
'_user.js.parrot'
|
||||||
]
|
]
|
||||||
|
252
user.js
252
user.js
@ -5,40 +5,34 @@
|
|||||||
* url: https://github.com/arkenfox/user.js
|
* url: https://github.com/arkenfox/user.js
|
||||||
* license: MIT: https://github.com/arkenfox/user.js/blob/master/LICENSE.txt
|
* license: MIT: https://github.com/arkenfox/user.js/blob/master/LICENSE.txt
|
||||||
|
|
||||||
* 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/arkenfox/user.js/releases
|
|
||||||
|
|
||||||
* README:
|
* README:
|
||||||
|
|
||||||
0. Consider using Tor Browser if it meets your needs or fits your threat model better
|
1. Consider using Tor Browser if it meets your needs or fits your threat model better
|
||||||
* https://www.torproject.org/about/torusers.html.en
|
* https://www.torproject.org/about/torusers.html.en
|
||||||
1. READ the full README
|
2. Required reading: Overview, Backing Up, Implementing, and Maintenance entries
|
||||||
* https://github.com/arkenfox/user.js/blob/master/README.md
|
* https://github.com/arkenfox/user.js/wiki
|
||||||
2. READ this
|
3. If you skipped step 2, return to step 2
|
||||||
* https://github.com/arkenfox/user.js/wiki/1.3-Implementation
|
4. Make changes
|
||||||
3. If you skipped steps 1 and 2 above (shame on you), then here is the absolute minimum
|
* There are often trade-offs and conflicts between security vs privacy vs anti-fingerprinting
|
||||||
* Real time binary checks with Google services are disabled (0412)
|
and these need to be balanced against functionality & convenience & breakage
|
||||||
* You will still get prompts to update Firefox, but auto-installing them is disabled (0302a)
|
* Some site breakage and unintended consequences will happen. Everyone's experience will differ
|
||||||
* Some user data is erased on close (section 2800). Change this to suit your needs
|
e.g. some user data is erased on close (section 2800), change this to suit your needs
|
||||||
* EACH RELEASE check:
|
* While not 100% definitive, search for "[SETUP" tags
|
||||||
- 4600s: reset prefs made redundant due to privacy.resistFingerprinting (RPF)
|
* Take the wiki link in step 2 and read the Troubleshooting entry
|
||||||
or enable them as an alternative to RFP (or some of them for ESR users)
|
5. Some tag info
|
||||||
- 9999s: reset deprecated prefs in about:config or enable the relevant section for ESR
|
|
||||||
* 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 changes, and to troubleshoot at times (choose wisely, there is always a trade-off).
|
|
||||||
While not 100% definitive, search for "[SETUP". If required, add each pref to your overrides section at
|
|
||||||
default values (or comment them out and reset them in about:config). Here are the main ones:
|
|
||||||
[SETUP-SECURITY] it's one item, read it
|
[SETUP-SECURITY] it's one item, read it
|
||||||
[SETUP-WEB] can cause some websites to break
|
[SETUP-WEB] can cause some websites to break
|
||||||
[SETUP-CHROME] changes how Firefox itself behaves (i.e. NOT directly website related)
|
[SETUP-CHROME] changes how Firefox itself behaves (i.e. not directly website related)
|
||||||
[SETUP-PERF] may impact performance
|
[SETUP-PERF] may impact performance
|
||||||
[SETUP-HARDEN] maybe you should consider using the Tor Browser
|
[WARNING] used sparingly, heed them
|
||||||
* [WARNING] tags are extra special and used sparingly, so heed them
|
|
||||||
4. BACKUP your profile folder before implementing (and/or test in a new/cloned profile)
|
* RELEASES
|
||||||
5. KEEP UP TO DATE: https://github.com/arkenfox/user.js/wiki#small_orange_diamond-maintenance
|
|
||||||
|
* Archive: https://github.com/arkenfox/user.js/releases
|
||||||
|
* Use the correct release that matches your Firefox version
|
||||||
|
* Each release
|
||||||
|
- run the prefsCleaner or reset deprecated prefs (9999s) and prefs made redundant by RFP (4600s)
|
||||||
|
- re-enable section 4600 if you don't use RFP
|
||||||
|
|
||||||
* INDEX:
|
* INDEX:
|
||||||
|
|
||||||
@ -68,7 +62,7 @@
|
|||||||
4000: FPI (FIRST PARTY ISOLATION)
|
4000: FPI (FIRST PARTY ISOLATION)
|
||||||
4500: RFP (RESIST FINGERPRINTING)
|
4500: RFP (RESIST FINGERPRINTING)
|
||||||
4600: RFP ALTERNATIVES
|
4600: RFP ALTERNATIVES
|
||||||
4700: RFP ALTERNATIVES (NAVIGATOR / USER AGENT (UA) SPOOFING)
|
4700: RFP ALTERNATIVES (USER AGENT SPOOFING)
|
||||||
5000: PERSONAL
|
5000: PERSONAL
|
||||||
9999: DEPRECATED / REMOVED / LEGACY / RENAMED
|
9999: DEPRECATED / REMOVED / LEGACY / RENAMED
|
||||||
|
|
||||||
@ -340,10 +334,8 @@ user_pref("extensions.systemAddon.update.url", ""); // [FF44+]
|
|||||||
/* 0506: disable PingCentre telemetry (used in several System Add-ons) [FF57+]
|
/* 0506: disable PingCentre telemetry (used in several System Add-ons) [FF57+]
|
||||||
* Currently blocked by 'datareporting.healthreport.uploadEnabled' (see 0340) ***/
|
* Currently blocked by 'datareporting.healthreport.uploadEnabled' (see 0340) ***/
|
||||||
user_pref("browser.ping-centre.telemetry", false);
|
user_pref("browser.ping-centre.telemetry", false);
|
||||||
/* 0515: disable Screenshots
|
/* 0515: disable Screenshots ***/
|
||||||
* alternatively in FF60+, disable uploading to the Screenshots server ***/
|
|
||||||
// user_pref("extensions.screenshots.disabled", true); // [FF55+]
|
// user_pref("extensions.screenshots.disabled", true); // [FF55+]
|
||||||
// user_pref("extensions.screenshots.upload-disabled", true); // [FF60+]
|
|
||||||
/* 0517: disable Form Autofill
|
/* 0517: disable Form Autofill
|
||||||
* [NOTE] Stored data is NOT secure (uses a JSON file)
|
* [NOTE] Stored data is NOT secure (uses a JSON file)
|
||||||
* [NOTE] Heuristics controls Form Autofill on forms without @autocomplete attributes
|
* [NOTE] Heuristics controls Form Autofill on forms without @autocomplete attributes
|
||||||
@ -365,7 +357,7 @@ user_pref("network.prefetch-next", false);
|
|||||||
/* 0602: disable DNS prefetching
|
/* 0602: disable DNS prefetching
|
||||||
* [1] https://developer.mozilla.org/docs/Web/HTTP/Headers/X-DNS-Prefetch-Control ***/
|
* [1] https://developer.mozilla.org/docs/Web/HTTP/Headers/X-DNS-Prefetch-Control ***/
|
||||||
user_pref("network.dns.disablePrefetch", true);
|
user_pref("network.dns.disablePrefetch", true);
|
||||||
user_pref("network.dns.disablePrefetchFromHTTPS", true); // [DEFAULT: true FF70+]
|
user_pref("network.dns.disablePrefetchFromHTTPS", true); // [DEFAULT: true]
|
||||||
/* 0603: disable predictor / prefetching ***/
|
/* 0603: disable predictor / prefetching ***/
|
||||||
user_pref("network.predictor.enabled", false);
|
user_pref("network.predictor.enabled", false);
|
||||||
user_pref("network.predictor.enable-prefetch", false); // [FF48+]
|
user_pref("network.predictor.enable-prefetch", false); // [FF48+]
|
||||||
@ -417,8 +409,7 @@ user_pref("network.http.altsvc.oe", false);
|
|||||||
* as a remote Tor node will handle the DNS request
|
* as a remote Tor node will handle the DNS request
|
||||||
* [1] https://trac.torproject.org/projects/tor/wiki/doc/TorifyHOWTO/WebBrowsers ***/
|
* [1] https://trac.torproject.org/projects/tor/wiki/doc/TorifyHOWTO/WebBrowsers ***/
|
||||||
user_pref("network.proxy.socks_remote_dns", true);
|
user_pref("network.proxy.socks_remote_dns", true);
|
||||||
/* 0708: disable FTP [FF60+]
|
/* 0708: disable FTP [FF60+] ***/
|
||||||
* [1] https://www.fxsitecompat.dev/en-CA/docs/2020/ftp-support-will-be-removed/ ***/
|
|
||||||
// user_pref("network.ftp.enabled", false);
|
// user_pref("network.ftp.enabled", false);
|
||||||
/* 0709: disable using UNC (Uniform Naming Convention) paths [FF61+]
|
/* 0709: disable using UNC (Uniform Naming Convention) paths [FF61+]
|
||||||
* [SETUP-CHROME] Can break extensions for profiles on network shares
|
* [SETUP-CHROME] Can break extensions for profiles on network shares
|
||||||
@ -546,8 +537,7 @@ user_pref("signon.formlessCapture.enabled", false);
|
|||||||
* hardens against potential credentials phishing
|
* hardens against potential credentials phishing
|
||||||
* 0=don't allow sub-resources to open HTTP authentication credentials dialogs
|
* 0=don't allow sub-resources to open HTTP authentication credentials dialogs
|
||||||
* 1=don't allow cross-origin sub-resources to open HTTP authentication credentials dialogs
|
* 1=don't allow cross-origin sub-resources to open HTTP authentication credentials dialogs
|
||||||
* 2=allow sub-resources to open HTTP authentication credentials dialogs (default)
|
* 2=allow sub-resources to open HTTP authentication credentials dialogs (default) ***/
|
||||||
* [1] https://www.fxsitecompat.com/en-CA/docs/2015/http-auth-dialog-can-no-longer-be-triggered-by-cross-origin-resources/ ***/
|
|
||||||
user_pref("network.auth.subresource-http-auth-allow", 1);
|
user_pref("network.auth.subresource-http-auth-allow", 1);
|
||||||
|
|
||||||
/*** [SECTION 1000]: CACHE / SESSION (RE)STORE / FAVICONS
|
/*** [SECTION 1000]: CACHE / SESSION (RE)STORE / FAVICONS
|
||||||
@ -648,7 +638,7 @@ user_pref("security.ssl.require_safe_negotiation", true);
|
|||||||
* [STATS] Firefox telemetry (June 2020) shows only 0.16% of SSL handshakes use 1.0 or 1.1
|
* [STATS] Firefox telemetry (June 2020) shows only 0.16% of SSL handshakes use 1.0 or 1.1
|
||||||
* [WARNING] Leave these at default, otherwise you alter your TLS fingerprint.
|
* [WARNING] Leave these at default, otherwise you alter your TLS fingerprint.
|
||||||
* [1] https://www.ssllabs.com/ssl-pulse/ ***/
|
* [1] https://www.ssllabs.com/ssl-pulse/ ***/
|
||||||
// user_pref("security.tls.version.min", 3); // [DEFAULT: 3 FF78+]
|
// user_pref("security.tls.version.min", 3); // [DEFAULT: 3]
|
||||||
// user_pref("security.tls.version.max", 4);
|
// user_pref("security.tls.version.max", 4);
|
||||||
/* 1203: enforce TLS 1.0 and 1.1 downgrades as session only */
|
/* 1203: enforce TLS 1.0 and 1.1 downgrades as session only */
|
||||||
user_pref("security.tls.version.enable-deprecated", false);
|
user_pref("security.tls.version.enable-deprecated", false);
|
||||||
@ -753,10 +743,6 @@ user_pref("security.mixed_content.block_object_subrequest", true);
|
|||||||
* [2] https://en.wikipedia.org/wiki/Meet-in-the-middle_attack
|
* [2] https://en.wikipedia.org/wiki/Meet-in-the-middle_attack
|
||||||
* [3] https://www-archive.mozilla.org/projects/security/pki/nss/ssl/fips-ssl-ciphersuites.html ***/
|
* [3] https://www-archive.mozilla.org/projects/security/pki/nss/ssl/fips-ssl-ciphersuites.html ***/
|
||||||
// user_pref("security.ssl3.rsa_des_ede3_sha", false);
|
// user_pref("security.ssl3.rsa_des_ede3_sha", false);
|
||||||
/* 1263: disable DHE (Diffie-Hellman Key Exchange)
|
|
||||||
* [1] https://www.eff.org/deeplinks/2015/10/how-to-protect-yourself-from-nsa-attacks-1024-bit-DH ***/
|
|
||||||
// user_pref("security.ssl3.dhe_rsa_aes_128_sha", false); // [DEFAULT: false FF78+]
|
|
||||||
// user_pref("security.ssl3.dhe_rsa_aes_256_sha", false); // [DEFAULT: false FF78+]
|
|
||||||
/* 1264: disable the remaining non-modern cipher suites as of FF78 (in order of preferred by FF) ***/
|
/* 1264: disable the remaining non-modern cipher suites as of FF78 (in order of preferred by FF) ***/
|
||||||
// user_pref("security.ssl3.ecdhe_ecdsa_aes_256_sha", false);
|
// user_pref("security.ssl3.ecdhe_ecdsa_aes_256_sha", false);
|
||||||
// user_pref("security.ssl3.ecdhe_ecdsa_aes_128_sha", false);
|
// user_pref("security.ssl3.ecdhe_ecdsa_aes_128_sha", false);
|
||||||
@ -783,7 +769,7 @@ user_pref("browser.ssl_override_behavior", 1);
|
|||||||
* [TEST] https://expired.badssl.com/ ***/
|
* [TEST] https://expired.badssl.com/ ***/
|
||||||
user_pref("browser.xul.error_pages.expert_bad_cert", true);
|
user_pref("browser.xul.error_pages.expert_bad_cert", true);
|
||||||
/* 1273: display "insecure" icon and "Not Secure" text on HTTP sites ***/
|
/* 1273: display "insecure" icon and "Not Secure" text on HTTP sites ***/
|
||||||
// user_pref("security.insecure_connection_icon.enabled", true); // [FF59+] [DEFAULT: true FF70+]
|
// user_pref("security.insecure_connection_icon.enabled", true); // [FF59+] [DEFAULT: true]
|
||||||
user_pref("security.insecure_connection_text.enabled", true); // [FF60+]
|
user_pref("security.insecure_connection_text.enabled", true); // [FF60+]
|
||||||
|
|
||||||
/*** [SECTION 1400]: FONTS ***/
|
/*** [SECTION 1400]: FONTS ***/
|
||||||
@ -819,9 +805,7 @@ user_pref("gfx.font_rendering.graphite.enabled", false);
|
|||||||
harden it a bit: set XOriginPolicy (1603) to 1 (as per the settings below)
|
harden it a bit: set XOriginPolicy (1603) to 1 (as per the settings below)
|
||||||
harden it a bit more: set XOriginPolicy (1603) to 2 (and optionally 1604 to 1 or 2), expect breakage
|
harden it a bit more: set XOriginPolicy (1603) to 2 (and optionally 1604 to 1 or 2), expect breakage
|
||||||
---
|
---
|
||||||
If you want any REAL control over referers and breakage, then use an extension. Either:
|
If you want any REAL control over referers and breakage, then use an extension
|
||||||
uMatrix: limited by scope, all requests are spoofed or not-spoofed
|
|
||||||
Smart Referrer: granular with source<->destination, whitelists
|
|
||||||
---
|
---
|
||||||
full URI: https://example.com:8888/foo/bar.html?id=1234
|
full URI: https://example.com:8888/foo/bar.html?id=1234
|
||||||
scheme+host+port+path: https://example.com:8888/foo/bar.html
|
scheme+host+port+path: https://example.com:8888/foo/bar.html
|
||||||
@ -981,9 +965,6 @@ user_pref("dom.popup_allowed_events", "click dblclick");
|
|||||||
including service and shared workers. Shared workers can be utilized by multiple scripts and
|
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.
|
communicate between browsing contexts (windows/tabs/iframes) and can even control your cache.
|
||||||
|
|
||||||
[NOTE] uMatrix 1.2.0+ allows a per-scope control for workers (2301-deprecated) and service workers (2302)
|
|
||||||
#Required reading [#] https://github.com/gorhill/uMatrix/releases/tag/1.2.0
|
|
||||||
|
|
||||||
[1] Web Workers: https://developer.mozilla.org/docs/Web/API/Web_Workers_API
|
[1] Web Workers: https://developer.mozilla.org/docs/Web/API/Web_Workers_API
|
||||||
[2] Worker: https://developer.mozilla.org/docs/Web/API/Worker
|
[2] Worker: https://developer.mozilla.org/docs/Web/API/Worker
|
||||||
[3] Service Worker: https://developer.mozilla.org/docs/Web/API/Service_Worker_API
|
[3] Service Worker: https://developer.mozilla.org/docs/Web/API/Service_Worker_API
|
||||||
@ -1065,7 +1046,6 @@ user_pref("javascript.options.asmjs", false);
|
|||||||
// user_pref("javascript.options.baselinejit", false);
|
// user_pref("javascript.options.baselinejit", false);
|
||||||
// user_pref("javascript.options.jit_trustedprincipals", true); // [FF75+] [HIDDEN PREF]
|
// user_pref("javascript.options.jit_trustedprincipals", true); // [FF75+] [HIDDEN PREF]
|
||||||
/* 2422: disable WebAssembly [FF52+] [SETUP-PERF]
|
/* 2422: disable WebAssembly [FF52+] [SETUP-PERF]
|
||||||
* [NOTE] In FF71+ this no longer affects extensions (1576254)
|
|
||||||
* [1] https://developer.mozilla.org/docs/WebAssembly ***/
|
* [1] https://developer.mozilla.org/docs/WebAssembly ***/
|
||||||
user_pref("javascript.options.wasm", false);
|
user_pref("javascript.options.wasm", false);
|
||||||
/* 2429: enable (limited but sufficient) window.opener protection [FF65+]
|
/* 2429: enable (limited but sufficient) window.opener protection [FF65+]
|
||||||
@ -1250,14 +1230,13 @@ user_pref("security.dialog_enable_delay", 700);
|
|||||||
user_pref("_user.js.parrot", "2700 syntax error: the parrot's joined the bleedin' choir invisible!");
|
user_pref("_user.js.parrot", "2700 syntax error: the parrot's joined the bleedin' choir invisible!");
|
||||||
/* 2701: disable 3rd-party cookies and site-data [SETUP-WEB]
|
/* 2701: disable 3rd-party cookies and site-data [SETUP-WEB]
|
||||||
* 0=Accept cookies and site data, 1=(Block) All third-party cookies, 2=(Block) All cookies,
|
* 0=Accept cookies and site data, 1=(Block) All third-party cookies, 2=(Block) All cookies,
|
||||||
* 3=(Block) Cookies from unvisited websites, 4=(Block) Cross-site and social media trackers (FF63+) (default FF69+)
|
* 3=(Block) Cookies from unvisited websites, 4=(Block) Cross-site and social media trackers (default)
|
||||||
* [NOTE] You can set exceptions under site permissions or use an extension
|
* [NOTE] You can set exceptions under site permissions or use an extension
|
||||||
* [NOTE] Enforcing category to custom ensures ETP related prefs are always honored
|
* [NOTE] Enforcing category to custom ensures ETP related prefs are always honored
|
||||||
* [SETTING] Privacy & Security>Enhanced Tracking Protection>Custom>Cookies ***/
|
* [SETTING] Privacy & Security>Enhanced Tracking Protection>Custom>Cookies ***/
|
||||||
user_pref("network.cookie.cookieBehavior", 1);
|
user_pref("network.cookie.cookieBehavior", 1);
|
||||||
user_pref("browser.contentblocking.category", "custom");
|
user_pref("browser.contentblocking.category", "custom");
|
||||||
/* 2702: set third-party cookies (i.e ALL) (if enabled, see 2701) to session-only
|
/* 2702: set third-party cookies (if enabled, see 2701) to session-only
|
||||||
and (FF58+) set third-party non-secure (i.e HTTP) cookies to session-only
|
|
||||||
[NOTE] .sessionOnly overrides .nonsecureSessionOnly except when .sessionOnly=false and
|
[NOTE] .sessionOnly overrides .nonsecureSessionOnly except when .sessionOnly=false and
|
||||||
.nonsecureSessionOnly=true. This allows you to keep HTTPS cookies, but session-only HTTP ones
|
.nonsecureSessionOnly=true. This allows you to keep HTTPS cookies, but session-only HTTP ones
|
||||||
* [1] https://feeding.cloud.geek.nz/posts/tweaking-cookies-for-privacy-in-firefox/ ***/
|
* [1] https://feeding.cloud.geek.nz/posts/tweaking-cookies-for-privacy-in-firefox/ ***/
|
||||||
@ -1388,72 +1367,67 @@ user_pref("privacy.firstparty.isolate", true);
|
|||||||
user_pref("privacy.partition.network_state", true);
|
user_pref("privacy.partition.network_state", true);
|
||||||
|
|
||||||
/*** [SECTION 4500]: RFP (RESIST FINGERPRINTING)
|
/*** [SECTION 4500]: RFP (RESIST FINGERPRINTING)
|
||||||
This master switch will be used for a wide range of items, many of which will
|
RFP covers a wide range of ongoing fingerprinting solutions.
|
||||||
**override** existing prefs from FF55+, often providing a **better** solution
|
It is an all-or-nothing buy in: you cannot pick and choose what parts you want
|
||||||
|
|
||||||
IMPORTANT: As existing prefs become redundant, and some of them WILL interfere
|
[WARNING] Do NOT use extensions to alter RFP protected metrics
|
||||||
with how RFP works, they will be moved to section 4600 and made inactive
|
[WARNING] Do NOT use prefs in section 4600 with RFP as they can interfere
|
||||||
|
|
||||||
** 418986 - limit window.screen & CSS media queries leaking identifiable info (FF41+)
|
FF41+
|
||||||
[NOTE] Info only: To set a size, open a XUL (chrome) page (such as about:config) which is at
|
418986 - limit window.screen & CSS media queries leaking identifiable info
|
||||||
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] https://arkenfox.github.io/TZP/tzp.html#screen
|
[TEST] https://arkenfox.github.io/TZP/tzp.html#screen
|
||||||
** 1281949 - spoof screen orientation (FF50+)
|
FF50+
|
||||||
** 1281963 - hide the contents of navigator.plugins and navigator.mimeTypes (FF50+)
|
1281949 - spoof screen orientation
|
||||||
FF53: Fixes GetSupportedNames in nsMimeTypeArray and nsPluginArray (1324044)
|
1281963 - hide the contents of navigator.plugins and navigator.mimeTypes (FF50+)
|
||||||
** 1330890 - spoof timezone as UTC 0 (FF55+)
|
FF55+
|
||||||
FF58: Date.toLocaleFormat deprecated (818634)
|
1330890 - spoof timezone as UTC 0
|
||||||
FF60: Date.toLocaleDateString and Intl.DateTimeFormat fixed (1409973)
|
1360039 - spoof navigator.hardwareConcurrency as 2 (see 4601)
|
||||||
** 1360039 - spoof navigator.hardwareConcurrency as 2 (see 4601) (FF55+)
|
1217238 - reduce precision of time exposed by javascript
|
||||||
This spoof *shouldn't* affect core chrome/Firefox performance
|
FF56+
|
||||||
** 1217238 - reduce precision of time exposed by javascript (FF55+)
|
1369303 - spoof/disable performance API (see 4602, 4603)
|
||||||
** 1369303 - spoof/disable performance API (see 2410-deprecated, 4602, 4603) (FF56+)
|
1333651 - spoof User Agent & Navigator API (see section 4700)
|
||||||
** 1333651 & 1383495 & 1396468 - spoof User Agent & Navigator API (see section 4700) (FF56+)
|
JS: FF78+ the version is spoofed as 78, and the OS as Windows 10, OS 10.15, Android 9, or Linux
|
||||||
FF56: Version: rounded down to the nearest multiple of 10
|
HTTP Headers: spoofed as Windows or Android
|
||||||
FF57: Version: match current ESR (1393283, 1418672, 1418162, 1511763)
|
1369319 - disable device sensor API (see 4604)
|
||||||
FF59: OS: Windows, OSX, Android, or Linux (to reduce breakage) (1404608)
|
1369357 - disable site specific zoom (see 4605)
|
||||||
FF66: OS: HTTP Headers reduced to Windows or Android (1509829)
|
1337161 - hide gamepads from content (see 4606)
|
||||||
FF68: OS: updated to Windows 10, OS 10.14, and Android 8.1 (1511434)
|
1372072 - spoof network information API as "unknown" when dom.netinfo.enabled = true (see 4607)
|
||||||
FF78: OS: updated to OS 10.15 and Android 9.0 (1635011)
|
1333641 - reduce fingerprinting in WebSpeech API (see 4608)
|
||||||
** 1369319 - disable device sensor API (see 4604) (FF56+)
|
FF57+
|
||||||
** 1369357 - disable site specific zoom (see 4605) (FF56+)
|
1369309 - spoof media statistics (see 4610)
|
||||||
** 1337161 - hide gamepads from content (see 4606) (FF56+)
|
1382499 - reduce screen co-ordinate fingerprinting in Touch API (see 4611)
|
||||||
** 1372072 - spoof network information API as "unknown" when dom.netinfo.enabled = true (see 4607) (FF56+)
|
1217290 & 1409677 - enable fingerprinting resistance for WebGL (see 2010-12)
|
||||||
** 1333641 - reduce fingerprinting in WebSpeech API (see 4608) (FF56+)
|
1382545 - reduce fingerprinting in Animation API
|
||||||
** 1372069 & 1403813 & 1441295 - block geolocation requests (same as denying a site permission) (see 0201, 0202) (FF56-62)
|
1354633 - limit MediaError.message to a whitelist
|
||||||
** 1369309 - spoof media statistics (see 4610) (FF57+)
|
1382533 - enable fingerprinting resistance for Presentation API
|
||||||
** 1382499 - reduce screen co-ordinate fingerprinting in Touch API (see 4611) (FF57+)
|
|
||||||
** 1217290 & 1409677 - enable fingerprinting resistance for WebGL (see 2010-12) (FF57+)
|
|
||||||
** 1382545 - reduce fingerprinting in Animation API (FF57+)
|
|
||||||
** 1354633 - limit MediaError.message to a whitelist (FF57+)
|
|
||||||
** 1382533 - enable fingerprinting resistance for Presentation API (FF57+)
|
|
||||||
This blocks exposure of local IP Addresses via mDNS (Multicast DNS)
|
This blocks exposure of local IP Addresses via mDNS (Multicast DNS)
|
||||||
** 967895 - spoof canvas and enable site permission prompt before allowing canvas data extraction (FF58+)
|
FF58+
|
||||||
FF59: Added to site permissions panel (1413780) Only prompt when triggered by user input (1376865)
|
967895 - spoof canvas and enable site permission prompt before allowing canvas data extraction
|
||||||
** 1372073 - spoof/block fingerprinting in MediaDevices API (FF59+)
|
FF59+
|
||||||
|
1372073 - spoof/block fingerprinting in MediaDevices API
|
||||||
Spoof: enumerate devices reports one "Internal Camera" and one "Internal Microphone" if
|
Spoof: enumerate devices reports one "Internal Camera" and one "Internal Microphone" if
|
||||||
media.navigator.enabled is true (see 2505 which we chose to keep disabled)
|
media.navigator.enabled is true (see 2505 which we chose to keep disabled)
|
||||||
Block: suppresses the ondevicechange event (see 4612)
|
Block: suppresses the ondevicechange event (see 4612)
|
||||||
** 1039069 - warn when language prefs are set to non en-US (see 0210, 0211) (FF59+)
|
1039069 - warn when language prefs are set to non en-US (see 0210, 0211)
|
||||||
** 1222285 & 1433592 - spoof keyboard events and suppress keyboard modifier events (FF59+)
|
1222285 & 1433592 - spoof keyboard events and suppress keyboard modifier events
|
||||||
Spoofing mimics the content language of the document. Currently it only supports en-US.
|
Spoofing mimics the content language of the document. Currently it only supports en-US.
|
||||||
Modifier events suppressed are SHIFT and both ALT keys. Chrome is not affected.
|
Modifier events suppressed are SHIFT and both ALT keys. Chrome is not affected.
|
||||||
FF60: Fix keydown/keyup events (1438795)
|
FF60-67
|
||||||
** 1337157 - disable WebGL debug renderer info (see 4613) (FF60+)
|
1337157 - disable WebGL debug renderer info (see 4613) (FF60+)
|
||||||
** 1459089 - disable OS locale in HTTP Accept-Language headers (ANDROID) (FF62+)
|
1459089 - disable OS locale in HTTP Accept-Language headers (ANDROID) (FF62+)
|
||||||
** 1479239 - return "no-preference" with prefers-reduced-motion (see 4614) (FF63+)
|
1479239 - return "no-preference" with prefers-reduced-motion (see 4614) (FF63+)
|
||||||
** 1363508 - spoof/suppress Pointer Events (see 4615) (FF64+)
|
1363508 - spoof/suppress Pointer Events (see 4615) (FF64+)
|
||||||
FF65: pointerEvent.pointerid (1492766)
|
FF65: pointerEvent.pointerid (1492766)
|
||||||
** 1485266 - disable exposure of system colors to CSS or canvas (see 4616) (FF67+)
|
1485266 - disable exposure of system colors to CSS or canvas (see 4616) (FF67+)
|
||||||
** 1407366 - enable inner window letterboxing (see 4504) (FF67+)
|
1407366 - enable inner window letterboxing (see 4504) (FF67+)
|
||||||
** 1494034 - return "light" with prefers-color-scheme (see 4617) (FF67+)
|
1494034 - return "light" with prefers-color-scheme (see 4617) (FF67+)
|
||||||
[1] https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-color-scheme
|
FF68-77
|
||||||
** 1564422 - spoof audioContext outputLatency (FF70+)
|
1564422 - spoof audioContext outputLatency (FF70+)
|
||||||
** 1595823 - spoof audioContext sampleRate (FF72+)
|
1595823 - spoof audioContext sampleRate (FF72+)
|
||||||
** 1607316 - spoof pointer as coarse and hover as none (ANDROID) (FF74+)
|
1607316 - spoof pointer as coarse and hover as none (ANDROID) (FF74+)
|
||||||
** 1621433 - randomize canvas (previously FF58+ returned an all-white canvas) (FF78+)
|
FF78+
|
||||||
** 1653987 - limit font visibility to bundled and "Base Fonts" (see 4618) (non-ANDROID) (FF80+)
|
1621433 - randomize canvas (previously FF58+ returned an all-white canvas) (FF78+)
|
||||||
|
1653987 - limit font visibility to bundled and "Base Fonts" (see 4618) (non-ANDROID) (FF80+)
|
||||||
***/
|
***/
|
||||||
user_pref("_user.js.parrot", "4500 syntax error: the parrot's popped 'is clogs");
|
user_pref("_user.js.parrot", "4500 syntax error: the parrot's popped 'is clogs");
|
||||||
/* 4501: enable privacy.resistFingerprinting [FF41+]
|
/* 4501: enable privacy.resistFingerprinting [FF41+]
|
||||||
@ -1470,22 +1444,22 @@ user_pref("privacy.resistFingerprinting", true);
|
|||||||
// user_pref("privacy.window.maxInnerWidth", 1000);
|
// user_pref("privacy.window.maxInnerWidth", 1000);
|
||||||
// user_pref("privacy.window.maxInnerHeight", 1000);
|
// user_pref("privacy.window.maxInnerHeight", 1000);
|
||||||
/* 4503: disable mozAddonManager Web API [FF57+]
|
/* 4503: disable mozAddonManager Web API [FF57+]
|
||||||
* [NOTE] As a side-effect in FF57-59 this allowed extensions to work on AMO. In FF60+ you also need
|
* [NOTE] To allow extensions to work on AMO, you also need 2662
|
||||||
* to sanitize or clear extensions.webextensions.restrictedDomains (see 2662) to keep that side-effect
|
|
||||||
* [1] https://bugzilla.mozilla.org/buglist.cgi?bug_id=1384330,1406795,1415644,1453988 ***/
|
* [1] https://bugzilla.mozilla.org/buglist.cgi?bug_id=1384330,1406795,1415644,1453988 ***/
|
||||||
user_pref("privacy.resistFingerprinting.block_mozAddonManager", true); // [HIDDEN PREF]
|
user_pref("privacy.resistFingerprinting.block_mozAddonManager", true); // [HIDDEN PREF]
|
||||||
/* 4504: enable RFP letterboxing [FF67+]
|
/* 4504: enable RFP letterboxing [FF67+]
|
||||||
* Dynamically resizes the inner window (FF67; 200w x100h: FF68+; stepped ranges) by applying letterboxing,
|
* Dynamically resizes the inner window by applying margins in stepped ranges, see [2]
|
||||||
* using dimensions which waste the least content area, If you use the dimension pref, then it will only apply
|
* If you use the dimension pref, then it will only apply those resolutions. The format is
|
||||||
* those resolutions. The format is "width1xheight1, width2xheight2, ..." (e.g. "800x600, 1000x1000, 1600x900")
|
* "width1xheight1, width2xheight2, ..." (e.g. "800x600, 1000x1000, 1600x900")
|
||||||
* [SETUP-WEB] This does NOT require RFP (see 4501) **for now**, so if you're not using 4501, or you are but you're
|
* [SETUP-WEB] This does NOT require RFP (see 4501) **for now**, so if you're not using 4501, or you are but
|
||||||
* not taking anti-fingerprinting seriously and a little visual change upsets you, then feel free to flip this pref
|
* dislike margins being applied, then flip this pref, keeping in mind that it is effectively fingerprintable
|
||||||
* [WARNING] The dimension pref is only meant for testing, and we recommend you DO NOT USE it
|
* [WARNING] The dimension pref is only meant for testing, and we recommend you DO NOT USE it
|
||||||
* [1] https://bugzilla.mozilla.org/1407366 ***/
|
* [1] https://bugzilla.mozilla.org/1407366
|
||||||
|
* [2] https://hg.mozilla.org/mozilla-central/rev/6d2d7856e468#l2.32 ***/
|
||||||
user_pref("privacy.resistFingerprinting.letterboxing", true); // [HIDDEN PREF]
|
user_pref("privacy.resistFingerprinting.letterboxing", true); // [HIDDEN PREF]
|
||||||
// user_pref("privacy.resistFingerprinting.letterboxing.dimensions", ""); // [HIDDEN PREF]
|
// user_pref("privacy.resistFingerprinting.letterboxing.dimensions", ""); // [HIDDEN PREF]
|
||||||
/* 4510: disable showing about:blank as soon as possible during startup [FF60+]
|
/* 4510: disable showing about:blank as soon as possible during startup [FF60+]
|
||||||
* When default true (FF62+) this no longer masks the RFP chrome resizing activity
|
* When default true this no longer masks the RFP chrome resizing activity
|
||||||
* [1] https://bugzilla.mozilla.org/1448423 ***/
|
* [1] https://bugzilla.mozilla.org/1448423 ***/
|
||||||
user_pref("browser.startup.blankWindow", false);
|
user_pref("browser.startup.blankWindow", false);
|
||||||
/* 4520: disable chrome animations [FF77+] [RESTART]
|
/* 4520: disable chrome animations [FF77+] [RESTART]
|
||||||
@ -1493,15 +1467,7 @@ user_pref("browser.startup.blankWindow", false);
|
|||||||
user_pref("ui.prefersReducedMotion", 1); // [HIDDEN PREF]
|
user_pref("ui.prefersReducedMotion", 1); // [HIDDEN PREF]
|
||||||
|
|
||||||
/*** [SECTION 4600]: RFP ALTERNATIVES
|
/*** [SECTION 4600]: RFP ALTERNATIVES
|
||||||
* non-RFP users:
|
[WARNING] Do NOT use prefs in this section with RFP as they can interfere
|
||||||
Enable the whole section (see the SETUP tag below)
|
|
||||||
* RFP users:
|
|
||||||
Make sure these are reset in about:config. They are redundant. In fact, some
|
|
||||||
even cause RFP to not behave as you would expect and alter your fingerprint
|
|
||||||
* ESR RFP users:
|
|
||||||
Reset those *up to and including* your version. Add those *after* your version
|
|
||||||
as active prefs in your overrides. This is assuming that the patch wasn't also
|
|
||||||
backported to Firefox ESR. Backporting RFP patches to ESR is rare.
|
|
||||||
***/
|
***/
|
||||||
user_pref("_user.js.parrot", "4600 syntax error: the parrot's crossed the Jordan");
|
user_pref("_user.js.parrot", "4600 syntax error: the parrot's crossed the Jordan");
|
||||||
/* [SETUP-non-RFP] Non-RFP users replace the * with a slash on this line to enable these
|
/* [SETUP-non-RFP] Non-RFP users replace the * with a slash on this line to enable these
|
||||||
@ -1600,32 +1566,22 @@ user_pref("layout.css.font-visibility.level", 1);
|
|||||||
// * * * /
|
// * * * /
|
||||||
// ***/
|
// ***/
|
||||||
|
|
||||||
/*** [SECTION 4700]: RFP ALTERNATIVES (NAVIGATOR / USER AGENT (UA) SPOOFING)
|
/*** [SECTION 4700]: RFP ALTERNATIVES (USER AGENT SPOOFING)
|
||||||
This is FYI ONLY. These prefs are INSUFFICIENT(a) on their own, you need
|
These prefs are insufficient and leak. Use RFP and **nothing else**
|
||||||
to use RFP (4500) or an extension, in which case they become POINTLESS.
|
- Many of the user agent components can be derived by other means. When those
|
||||||
(a) Many of the components that make up your UA can be derived by other means.
|
values differ, you provide more bits and raise entropy. Examples include
|
||||||
And when those values differ, you provide more bits and raise entropy.
|
workers, iframes, headers, tcp/ip attributes, feature detection, and many more
|
||||||
Examples of leaks include workers, navigator objects, date locale/formats,
|
- Web extensions also lack APIs to fully protect spoofing
|
||||||
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
|
|
||||||
***/
|
***/
|
||||||
user_pref("_user.js.parrot", "4700 syntax error: the parrot's taken 'is last bow");
|
user_pref("_user.js.parrot", "4700 syntax error: the parrot's taken 'is last bow");
|
||||||
/* 4701: navigator.userAgent ***/
|
/* 4701: navigator DOM object overrides
|
||||||
// user_pref("general.useragent.override", ""); // [HIDDEN PREF]
|
* [WARNING] DO NOT USE ***/
|
||||||
/* 4702: navigator.buildID
|
|
||||||
* 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/ ***/
|
|
||||||
// user_pref("general.buildID.override", ""); // [HIDDEN PREF]
|
|
||||||
/* 4703: navigator.appName ***/
|
|
||||||
// user_pref("general.appname.override", ""); // [HIDDEN PREF]
|
// user_pref("general.appname.override", ""); // [HIDDEN PREF]
|
||||||
/* 4704: navigator.appVersion ***/
|
|
||||||
// user_pref("general.appversion.override", ""); // [HIDDEN PREF]
|
// user_pref("general.appversion.override", ""); // [HIDDEN PREF]
|
||||||
/* 4705: navigator.platform ***/
|
// user_pref("general.buildID.override", ""); // [HIDDEN PREF]
|
||||||
// user_pref("general.platform.override", ""); // [HIDDEN PREF]
|
|
||||||
/* 4706: navigator.oscpu ***/
|
|
||||||
// user_pref("general.oscpu.override", ""); // [HIDDEN PREF]
|
// user_pref("general.oscpu.override", ""); // [HIDDEN PREF]
|
||||||
|
// user_pref("general.platform.override", ""); // [HIDDEN PREF]
|
||||||
|
// user_pref("general.useragent.override", ""); // [HIDDEN PREF]
|
||||||
|
|
||||||
/*** [SECTION 5000]: PERSONAL
|
/*** [SECTION 5000]: PERSONAL
|
||||||
Non-project related but useful. If any of these interest you, add them to your overrides ***/
|
Non-project related but useful. If any of these interest you, add them to your overrides ***/
|
||||||
|
Loading…
Reference in New Issue
Block a user