No description
Find a file
2017-10-14 14:28:23 -05:00
background_scripts buta 2017-10-14 13:52:56 -05:00
config buta 2017-10-14 13:52:56 -05:00
content_scripts add ability to use aggressive and conservative default blocking sets 2017-10-13 23:23:49 -05:00
data/standards add ability to use aggressive and conservative default blocking sets 2017-10-13 23:23:49 -05:00
images initial work on popup, which lets the user know which related frames are loading script on the current page 2017-10-14 00:41:49 -05:00
lib add ability to use aggressive and conservative default blocking sets 2017-10-13 23:23:49 -05:00
popup buta 2017-10-14 13:52:56 -05:00
.gitignore update gulp file to build the content_scripts/dist/* code, to make the injected code easier to edit 2017-10-13 02:32:41 -05:00
gulpfile.js add ability to use aggressive and conservative default blocking sets 2017-10-13 23:23:49 -05:00
LICENSE.txt add that text 2017-10-14 14:28:23 -05:00
manifest.json buta 2017-10-14 13:52:56 -05:00
package-lock.json init commit 2017-09-12 17:34:25 -05:00
package.json init commit 2017-09-12 17:34:25 -05:00
README.md add that text 2017-10-14 14:28:23 -05:00

Web API Manager

Overview

This extension allows users to selectively allow different hosts on the web to have access to different types of browser functionality. Doing so allows security and privacy sensitive web users to limit the attack surface presented to websites, and to limit websites to the functionality they actually need to carry out user-serving purposes.

Background

Web browsers gain staggering numbers of new features, without their users knowing what new functionality is being pushed into their trusted base. While some of this functionality is broadly useful for things commonly thought of as "web" related, a large amount of it is useful in only rare situations, if ever. Examples of this rarely-needed functionality includes the low level audio synthesis capabilities of the Web Audio API, the low level graphics capabilities of WebGL, or the light sensing capabilities of the Ambient Light Sensor API. Such complex-but-rarely-used functionality has been often used in attacks on the security and privacy of the web.

Other functionality is frequently used by web sites, but for non-user-serving purposes, like fingerprinting anonymous users and tracking them across websites. Examples of such functionality includes parts of the SVG API, parts of the the Canvas Element's functionality, and the Beacon standard, among many others.

This extension helps users stay private and secure online by limiting websites to only the functionality they need, and prevent them from accessing rarely needed and/or privacy violating functionality.

Functionality

The extension currently includes the following functionality:

  • Creation of domain-specifiy functionlity rules, based on host-matching regular expressions.
  • Blocking of functionality across all domains, with a fallback, "default" blocking rule.
  • A novel method of blocking functionality, designed to minimize the effect of removing functionlity on existing code that expects that functionlity to be in place.
  • A categorization of approximatly 1,400 JavaScript methods into 74 different Web API standards (and, where appropriate, sub-standards).
  • User feedback to alert users how many hosts are executing script everytime they visit a site, to ease the creating of new rules.

The following functionality is not currently implemented, but is being considered for future inclusion:

  • The ability to subscribe to blocking rulesets created by trusted third parties, similar to the EasyList / AdBlockPlus model of rule subscriptions.
  • Blocking property accesses on non-global structures through an additional level of interposition on runtime created objects.
  • Adding new Web API standards into the code base.

Background

This extension is based on research conducted at the BITSLab at the University of Illinois at Chicago. Further information on the measurements and techniques used in this extension can be found in the following papers.