Code Monkey home page Code Monkey logo

antiprint's Introduction

Travis build status Build status Maven Central

antiprint

Antiprint is an extension for Chrome and Firefox that makes your browser appear less unique to websites that you visit.

This extension is neither complete nor correct in accomplishing that feat. To suggest ways to improve it, please open an issue.

Coverage Areas

User-Agent and navigator.platform conflicts

You can set your Chrome user agent using a command line option, but this does not affect the read-only navigator.platform property. So if your browser has JavaScript enabled, then a page is able to tell the server what your actual platorm is, which may conflict with what your user agent indicates.

The question of how to modify navigator.platform was posed to the Chromium Google Group a few years ago, and the best answer was to make an extension.

Somebody on StackOverflow tried that but ran into some trouble. By using a technique described in an answer to a different question, they were reportedly able to make it work.

This extension causes navigator.platform to report a value that it is consistent with the user agent. A future release may support manual specification of the platform value. To be clear, this extension does not allow you to specify a custom value for navigator.platform. It automatically selects an appropriate navigator.platform value for the user agent string that is configured for the browser.

WebRTC private network IP leakage

In Chrome, by default, a script could learn your private network IP address by executing code that facilitates good WebRTC (video chat) connections. This extension protects against that by changing that setting to a setting that is potentially less efficient but only allows scripts access to the public IP address, using code from the WebRTC Network Limiter extension.

In theory, this should work for Firefox too, but in practice, you should just set the value of the preference media.peerconnection.enabled to false.

Caveats

Incompatible with some other Chrome extensions

This extension is incompatible with some other extensions that affect a browser's fingerprint. Specifically, errors may occur when this extension is enabled alongside other extensions that define properties on window.navigator without allowing those definitions to be overwritten. An example of such an extension that is unfortunately incompatible is the excellent User-Agent Switcher for Chrome.

Firefox webdriver support

The extensible-firefox-webdriver artifact provides an implementation of a Firefox webdriver that supports installing unsigned extensions. This is a feature in the webdriver spec that is not yet supported by the Selenium Java library (as of version 3.7.1). The naming convention for the artifact version is A.B.CxD.E, where A.B.C is the Selenium Java version and D.E is the Antiprint extension version. For example, the version compatible with Selenium Java 3.7.1 is 3.7.1x0.6.

Acknowledgments

  • The extension icon is finger print by romzicon from the Noun Project

antiprint's People

Contributors

mike10004 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

antiprint's Issues

ChromeWebrtcIpLeakageTest fails with Chromium 76

This test is now failing due to a Javascript error, and the root cause appears to be that the behavior that the script expects, that a particular object with relevant IP address properties, a member of the WebRTC connection instance, is no longer the actual behavior, which is that the member is null.

However, rather than fixing the script that the test uses, the local IP leak protection should instead be removed as a feature, because both Chrome/Chromium and Firefox now provide methods to disable WebRTC or protect the local IP.

For Firefox, setting media.peerconnection.enabled to false disables WebRTC, and in Chrome/Chromium, the flag enable-webrtc-hide-local-ips-with-mdns can be set, according to https://bugs.chromium.org/p/chromium/issues/detail?id=333752#c112.

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.