Giter Club home page Giter Club logo

amnesiac_aardvark's Introduction

Introduction

Amnesiac Aardvark is a Pale Moon add-on that blocks spying ads and invisible trackers as you browse. More info here.

Amnesiac Aardvark was forked from the EFF's Privacy Badger extension. It is not the goal of the developer to create a separate and distinct product, but rather to simply offer Privacy Badger's code and features to Pale Moon users. Therefore, we will be integrating upstream changes as they become available.

Developers' guide

Building

Compress the contents of src/ into a zip file, and rename the extension of the file from .zip to .xpi. Note: if you zip src itself the extension will not work!

Then drag the .xpi file into a Pale Moon window and follow the prompts to install.

Important directories and files

package.json              |
data/                     |
lib/                      | Most of the code that runs in the add-on. See SDK documentation for more info on the directory structure.
locale/                   |
defaults/                 |

doc/                      Changelog, style guide, how to make a signed release, other documentation TBD.

Contributing

Before you submit a pull request please consult the CONTRIBUTING.md file.

How heuristic blocking works

This is a rough summary of Amnesiac Aardvark's internal logic for blocking trackers. At the moment, "tracker" == "third-party cookie from a site that tracks you on multiple first-party origins." The Privacy Badger developers are in the process of adding support for other non-cookie tracker types (local storage, etags, cache hits, etc.), which will be forked to Amnesiac Aardvark upon completion.

Amnesiac Aardvark uses a (relatively-simple) heuristic algorithm for deciding whether a third-party is tracking you. When Amnesiac Aardvark sees a third-party request on a website, it checks:

  1. Does the third-party read a cookie? If not, don't count it in the blocking heuristic. Otherwise:
  2. Is the cookie sufficiently high-entropy? If not, don't count it. (Currently the entropy calculation is very crude! See lib/heuristicBlocker.js.) Otherwise:
  3. Increment the heuristic blocker counter by +1 for that domain. Has the base domain (eTLD+1) of the third-party read cookies on at least 3 first-party base domains? If not, don't block it (for now). Otherwise:
  4. Has the third party posted an acceptable DNT policy? (We check this using an XML HTTP Request to a well-known path where we are asking sites to post statements of compliance with DNT.) If so, don't block it. Otherwise:
  5. Is the third party or any of its parent domains on a preloaded whitelist of sites to not block because it would probably cause the first-party site to break? If so, block it from reading cookies in a third-party context. Otherwise:
  6. Block third-party requests from the third-party entirely.

In addition, Amnesiac Aardvark will block third-party cookies from a domain if any of its parent domains have been blocked or cookie-blocked.

Note that users can manually set domains to be unblocked (green), cookie-blocked (yellow), or red (blocked). These choices always override the heuristic blocker.

By default, Amnesiac Aardvark sends the Do Not Track header on all requests. It also clears the referer for all requests that are cookie-blocked.

Contact

The maintainer of Amnesiac Aardvark is Fred-Barclay (Bugs Ate Fred at gmail dot com). If possible, please open an Issue to contact me. If you would prefer not, then feel free to email.

The current maintainers of Privacy Badger are Cooper Quintin (cjq at eff dot org) and Noah Swartz (noah at eff dot org). There is also a mailing list to discuss Privacy Badger development for both Firefox and Chrome.

Please note that though we applaud the Privacy Badger developers and would not exist without them, Amnesiac Aardvark is not officially affiliated with Privacy Badger. Please open issues here, as the Privacy Badger developers will not be able to offer assistance.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.