Skip to content

Blocking goals and policy

Fanboynz edited this page Jan 4, 2020 · 24 revisions

Privacy Protections In Brave

Brave modifies how websites execute, and what network requests websites can make. Brave does this to protect user privacy, improve website performance, and generally improve the experience for users. This document describes both the policy Brave uses to decide what to block and modify, and the techniques Brave uses to approximate the policy in the browser. We can only at best "approximate" the policy because of the wide variety in how websites work, and the efforts trackers go to circumvent user protections.

Blocking Goals and Policy

Brave attempts to protect user privacy by blocking third party advertising. Brave's goal in doing so is not to block the advertisement images themselves, but to block the tracking such advertisements cause. In practice, it is difficult-to-impossible to distinguish third-party advertising with third-party tracking, so Brave blocks both.

While Brave does not intentionally target first-party advertising for blocking, Brave doesn't consider it an error either. In other words, Brave does not try to block first party ads, but won't take efforts to unblock first-party ads if they're being blocked by other steps.

Similarly, Brave also blocks code that attempts to identify users based on unique browser characteristics, hardware configuration and similar semi-unique data points. Such identification techniques are just as harmful to users as traditional cookie-based tracking.

Finally, Brave intentionally blocks website behaviors that are harmful to users, whether or not those behaviors are privacy-harming. For example, Brave blocks crypto-mining scripts. These scripts use the user's computer in an intensive manner to try and earn money for the hosting website, and result in degraded performance and reduced battery life. Crypto mining scripts are only one such example, but when possible, Brave will modify websites and requests to improve the user experience.

Blocking Techniques and Methods

Brave makes a best effort attempt to enforce the above policy, through a number of steps. The majority of the below described techniques are controlled by the "Shields" panel in Brave, and can be disabled if and when the user desires too. Because of platform restrictions, Brave is not able to use all of these techniques on iOS, though we are constantly looking for ways of increasing protections on that platform.

First, Brave blocks the most common tracking mechanism, sending cookies to third party resources. By default, Brave never sends cookies to third parties, nor respects storage setting and reading operations by scripts operating in the third party contexts.

Second, Brave modifies the referrer header when making cross origin requests. Brave "lies" on these requests, and says the request was being issued from the same domain being requested, instead of the true, cross-domain origin.

Third, Brave prevents third party frames from tracking users through passive finger printing techniques. Brave modifies or returns false values for a number of Web API endpoints that can be used to identify users (e.g. Canvas API, WebGL, Web Audio API, etc.). Brave by default only does this in third party contexts, but can be modified to perform the same protections globally, or not-at-all.

Fourth, Brave pulls from a variety of community developed filter lists, or lists of URLs used for carrying out advertising or tracking. These lists include EasyList and EasyPrivacy, lists generated by the uBlock Origin project, the Disconnect project, as well as lists maintained by Brave itself. URLs identified by these lists are either blocked, or have their resources modified, to protect users. Brave also uses lists to block coin miners and scripts that engage in "notifications spam." The current, full set of filter lists Brave uses can be found in our source.

Fifth, Brave uses lists generated by the HTTPSEverywhere project to identify URLs that can be upgraded to encrypted, HTTPS connections, and to make those upgrades automatically on behalf of our users.

Lists used

  • Regional adblock lists Brave will have country specific adblock filter options. These filter lists are imported from various list authors and will offer added protection not covered by Easylist (which is a english-specific list).

Mobile: Can be configured in the settings/privacy
Desktop: Filters can be changed using brave://adblock

  • Easylist

Primary filter list that removes most advertisements from webpages.
Type of Rules: #network #cosmetic
Address: https://easylist.to/easylist/easylist.txt
Support: https://forums.lanik.us/

  • Easyprivacy

Removes tracking scripts, information collectors and other tracking elements. Protecting your privacy.
Type of Rules: #network
Address: https://easylist.to/easylist/easyprivacy.txt
Support: https://forums.lanik.us/

  • Brave-unbreak (Brave specific list)

Brave-generated filter rules to address web compatibility issues unique to Brave, and to target anti-adblock resources.
Type of Rules: #network
Address: https://github.com/brave/adblock-lists/blob/master/brave-unbreak.txt
Support: https://github.com/brave/adblock-lists/issues

  • NoCoin Filter List (Brave specific list)

Filters to prevent coinmining scripts being loaded in the browser.
Type of Rules: #network
Address: https://raw.githubusercontent.com/brave/adblock-lists/master/coin-miners.txt
Support: https://github.com/hoshsadiq/adblock-nocoin-list/issues

  • uBlock Lists

Ublock origin specific fixes to counter broken sites and to address privacy scripts.
Type of Rules: #network #cosmetic
Address: https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/unbreak.txt
Address: https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/filters.txt
Address: https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/privacy.txt
Support: https://github.com/uBlockOrigin/uAssets/issues

  • Brave-Notifications List (Based on Fanboy Annoyances)

Blocking web notification servers, protecting user privacy, security and stopping the disruptive popups.
Type of Rules: #network
Address: https://github.com/brave/adblock-lists/blob/master/brave-notifications.txt
Support: https://github.com/brave/adblock-lists/issues

Disconnect list is used to block 3rd-party content such as social media servers
Type of Rules: #network
Address: https://github.com/brave/adblock-lists/blob/master/brave-disconnect.txt
Support: Support: https://github.com/brave/adblock-lists/issues

Clone this wiki locally