Browser settings - Karegohan-And-Kamehameha/privacyguide GitHub Wiki

Overview

This section covers about:config setting that enhance privacy. Many of these settings can be set via the browser options page/window or in the settings of privacy addons, such as uBlock Origin and Random Agent Spoofer, others can not be accessed from anywhere else. Please note that some of these settings disable certain functions of the browser that may be useful, but are usually not required for general purpose browsing, however, unlike many other guides out there, these settings are a compromise between privacy and sanity, therefore settings that don't harm privacy too much and hinder usability a lot are left unchanged. Nevertheless, you are encouraged to be mindful of what you disable. Below are the settings for Waterfox, but most of them are also relevant for Pale Moon, if a setting is not present in Pale Moon, it usually means that the feature is not implemented there and there is no need to create a new setting for it. Settings that are in their proper state by default in Waterfox are not mentioned here.

Beacon

An HTML5 technique used primarily for tracking. Set beacon.enabled to false.

Disk Cache

Disk cache is not needed in our age of fast internet speeds and large amounts of RAM. It can also be used to track you. Set browser.cache.disk.enable to false.

Enhanced New Tab

Enhanced new tab page is used to deliver targeted advertising based on the browsing history to users. Set browser.newtabpage.enhanced to false.
The new tab page also captures thumbnails of the pages you visit to store in the profile, therefore it is also recommended to get rid of the new tab page altogether by setting. browser.newtabpage.enabled to false and browser.pagethumbnails.capturing_disabled to true.

Safebrowsing

Safebrowsing uses Google services to verify that links don't lead to malware and phishing sites. If you have the relevant lists active in uBlock Origin or uMatrix, or a modified hosts file, this functionality is already covered by those and sending your links to Google for verification is not a good idea. Set all of the following preferences to false:
browser.safebrowsing.blockedURIs.enabled
browser.safebrowsing.downloads.enabled
browser.safebrowsing.downloads.remote.block_dangerous
browser.safebrowsing.downloads.remote.block_dangerous_host
browser.safebrowsing.downloads.remote.block_potentially_unwanted
browser.safebrowsing.downloads.remote.block_uncommon
browser.safebrowsing.downloads.remote.enabled
browser.safebrowsing.malware.enabled
browser.safebrowsing.phishing.enabled

Geolocation

Geolocation is used for location aware browsing, which is an obvious threat to privacy. To disable geolocation, set browser.search.geoip.url to blank, geo.wifi.uri to blank, and geo.enabled to false.

Crash Reporting

Reports when tabs crash. To disable crash reporting set browser.tabs.crashReporting.sendReport to false.
And the same for plugins. Set dom.ipc.plugins.reportCrashURL to false.

Device sensors

Read this article if you want to learn how device sensors can be used to violate your privacy. To disable device sensors set device.sensors.enabled to false.

Battery

The battery status of your device can be used to fingerprint you. To disable the browser tracking of the battery status set dom.battery.enabled to false.

Website monitoring of clipboard and context menu

By default, websites know when you copy parts of the page into the clipboard or open a context menu. To prevent this behavior set dom.event.clipboardevents.enabled and dom.event.contextmenu.enabled to false.

Additional APIs

These APIs do not pose known privacy or security threats, but it can be a good idea to disable them anyway if you do not use them, simply to decrease the amount of possible attack vectors. To disable them, set the following values to false:
dom.gamepad.enabled, dom.gamepad.extensions.enabled − gamepad API.
dom.use_watchdogpasswords age analyzer, can be disabled, since you shouldn't be using the built-in password manager in the first place.
dom.vibrator.enabled − Vibrator API.
dom.vr.enabled − VR API.

EME

I am not sure why this setting is even present in Waterfox, considering that Adobe EME has been gutted from it, but better safe than sorry. Set media.eme.enabled to false.

Punycode domain names

Read this article to learn how punycode can be used for extremely convincing phishing techniques. Set network.IDN_show_punycode to true.

Third party cookies

Third party cookies are used almost exclusively for tracking, so it's best to disable them. Set network.cookie.cookieBehavior to 1.

IPv6 DNS

DNS requests via IPv6 can lead to IP leaks. Disable them by setting network.dns.disableIPv6 to true.

Prefetching

Prefetching is used to send requests to websites that are likely to be visited in the future. Disabling prefetching may slow the browsing experience a bit, but will save traffic and protect privacy. Set network.dns.disablePrefetch to true, network.http.speculative-parallel-limit to 0, and network.prefetch-next to false.

DNS via proxy

Force proxies to use their own DNS servers to resolve requests. Set network.proxy.socks_remote_dns to true.

Plugins

Set all plugins to be disabled by default. Only enable the plugins that you use. Set plugin.default.state to 0.

Do not track

Tell sites that you do not want to be tracked. Set privacy.donottrackheader.enabled to true.

Social

Disable all the social junk in the browser. Set social.remote-install.enabled and social.toast-notifications.enabled to false, social.directories and social.whitelist to blank.

WebGL

According to some sources, WebGL can be used to fingerprint your browser by generating a report hash. This technique can be tested here. To disable WebGL set webgl.disabled to true.

WebRTC

WebRTC has not one, but two privacy issues associated with it. The one that's usually spoken about is IP leakage. This issue can be alleviated in Waterfox without completely disabling WebRTC by setting media.peerconnection.ice.no_host to true.
The second issue is much less known and involves fingerprinting your browser by unique device hash enumeration. A test of this technique, as well as additional information on the issue can be found here and there does not seem to be a way around it without completely disabling WebRTC. To disable WebRTC and Media Devices set media.peerconnection.enabled to false and media.navigator.enabled to false.

Fonts

Check out this test to see how your fonts can be fingerprinted. Simply limiting the amount of detectable fonts doesn't solve the problem, because the way even one font is rendered can still be used for fingerprinting and can cause websites to look uglier or even certain languages not to work properly, therefore settings that limit the amount of fonts are not included.