Skip to content
Privacy > Internet

34 Firefox tweaks for better privacy – advanced users (2021)

Firefox offer plenty of hidden setups, not available in the default settings interface, that you can tweak to harden your browser. This post if for advanced users.

Firefox advanced settings

Additional modifications, not available in the general menu settings can be customized using about:config.

To access these configuration settings, enter about:config into the URL bar and hit enter. You will then be prompted with a warning screen stating “This might void your warranty.” Click “I accept the risk” to continue.

Tweak Firefox settings for better privacy

beacon.enabled = false

Disables sending additional analytics to web servers. Details

browser.safebrowsing.downloads.remote.enabled = false

Prevents Firefox from sending information about downloaded executable files to Google Safe Browsing to determine whether it should be blocked for safety reasons. Details

browser.send_pings = false

The attribute would be useful for letting websites track visitors’ clicks.

browser.urlbar.speculativeConnect.enabled = false

Disable preloading of autocomplete URLs. Firefox preloads URLs that autocomplete when a user types into the address bar, which is a concern if URLs are suggested that the user does not want to connect to. Source

dom.event.clipboardevents.enabled = false

This prevents websites from getting notifications if you copy, paste, or cut something from the page.

geo.enabled = false

Setting this to false will disable geolocation tracking, which may be requested by a site you are visiting. As explained by Mozilla, this preference is enabled by default and utilizes Google Location Services to pinpoint your location. In order to do that, Firefox sends Google. See detail here.

  1. your computer’s IP address
  2. information about nearby wireless access points
  3. a random client identifier, which is assigned by Google (expires every two weeks)

Before this data is sent to Google, you would first get a request by the site you are visiting. Therefore you do have control over this, even if geo remains enabled.

media.eme.enabled = false

This disables the playback of DRM-controlled HTML5 content. See details here.

dom.event.clipboardevents.enabled = false

Disable that websites can get notifications if you copy, paste, or cut something from a web page, and it lets them know which part of the page had been selected.

media.gmp-widevinecdm.enabled = false

Disables the Widevine Content Decryption Module provided by Google Inc., used for the playback of DRM-controlled HTML5 content. Details

media.navigator.enabled = false

Setting this preference to false will block websites from being able to track the microphone and camera status of your device.

media.peerconnection.enabled = false

WebRTC stands for “Web Real-Time Communication” and it allows for voice, video chat, and P2P sharing through your browser. Unfortunately, this capability can also expose your real IP address through browser STUN requests, even if you are using a good VPN service. (This is called a WebRTC leak.)

To disable WebRTC in Firefox simply enter media.peerconnection.enabled into the search bar and then double click the value to change it to false.


This is an integer type preference with different values. Here are the cookie preference options:

  • 0 = Accept all cookies by default
  • 1 = Only accept from the originating site (block third-party cookies)
  • 2 = Block all cookies by default
  • 3 = Block cookies from unvisited sites
  • 4 = New Cookie Jar policy (prevent storage access to trackers)

Any selection between 1 and 4 would improve privacy. The New Cookie Jar policy (value 4) offers more protection, but it may also break the functionality of some websites. Ghacks has a discussion of the New Cookie Jar policy here.

network.cookie.lifetimePolicy = 2

This is another integer type preference that you should set to a value of 2. This preference determines when cookies are deleted. Here are the different options:

  • 0 = Accept cookies normally
  • 1 = Prompt for each cookie
  • 2 = Accept for current session only
  • 3 = Accept for N days

With a value of 2, websites you visit should work without any problems, and all cookies will be automatically deleted at the end of the session.

network.dns.disablePrefetch = true

Setting this preference to true will disable Firefox from “prefetching” DNS requests. While advanced domain name resolution may slightly improve page load speeds, this also comes with some risks, as described in this paper.

network.dns.disablePrefetchFromHTTPS = true

Same as previous for HTTPS

network.http.referer.XOriginPolicy = 2

Only send Referer header when the full hostnames match. (Note: if you notice significant breakage, you might try 1 combined with an XOriginTrimmingPolicy tweak below.) Source

  • 0 = Send Referer in all cases
  • 1 = Send Referer to same eTLD sites
  • 2 = Send Referer only when the full hostnames match

network.http.referer.XOriginTrimmingPolicy = 2

When sending Referer across origins, only send scheme, host, and port in the Referer header of cross-origin requests. Source

  • 0 = Send full url in Referer
  • 1 = Send url without query string in Referer
  • 2 = Only send scheme, host, and port in Referer

network.IDN_show_punycode = true

Not rendering IDNs as their Punycode equivalent leaves you open to phishing attacks that can be very difficult to notice. Source

network.predictor.enabled = false

Prefetching causes cookies from the prefetched site to be loaded and other potentially unwanted behavior. Details here and here.

network.predictor.enable-prefetch = false

Idem previous

network.prefetch-next = false

Similar to prefetching DNS requests above, setting this preference to false will prevent pages from being prefetched by Firefox. Mozilla has deployed this feature to speed up web pages that you might visit. However, it will use up resources and poses a risk to privacy. This is another example of performance at the price of privacy.

privacy.firstparty.isolate = true

A result of the Tor Uplift effort, this preference isolates all browser identifier sources (e.g. cookies) to the first party domain, with the goal of preventing tracking across different domains. (Don’t do this if you are using the Firefox Addon “Cookie AutoDelete” with Firefox v58 or below.). See details here.

privacy.resistFingerprinting = true

Changing this preference to true will help to make Firefox more resistant to browser fingerprinting.

Note: There are many factors that go into browser fingerprinting and the ability of an adversary to identify you. See the browser fingerprinting guide for additional details. More details here.

privacy.trackingprotection.cryptomining.enabled = true

Another new preference with Firefox 67+, this will block cryptominers.

privacy.trackingprotection.enabled = true

This is Mozilla’s new built-in tracking protection. One of it’s benefits is blocking tracking (i.e. Google Analytics) on privileged pages where add-ons that usually do that are disabled.

privacy.trackingprotection.fingerprinting.enabled = true

This is a new preference with Firefox 67+ to block fingerprinting.

privacy.firstparty.isolate = true

Changing this to true will isolate cookies to the first party domain, which prevents tracking across multiple domains. First party isolation also does much more than isolating cookies, it affects: cookies, cache, HTTP Authentication, DOM Storage, Flash cookies, SSL and TLS session resumption, Shared Workers, blob URIs, SPDY and HTTP/2, automated cross-origin redirects,, auto-form fill, HSTS and HPKP supercookies, broadcast channels, OCSP, favicons, mediasource URIs and Mediastream, speculative and prefetched connections.

This preference was added in late 2017 as part of the Tor Uplift Project.

privacy.trackingprotection.enabled = true

Another new update, this is Mozilla’s built-in tracking protection feature. This will use a filter list, but may be redundant if you are using uBlock Origin 3rd party filters.

webgl.disabled = true

WebGL is a potential security risk, which is why it is best disabled by setting webgl.disabled to true. Another issue with WebGL is that it can be used to fingerprint your device.

You can get more information on the WebGL issue here and here.


Leave a Reply

Your email address will not be published. Required fields are marked *