Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Which Web APIs should we be looking at? #56

Open
gbaptista opened this issue Feb 11, 2018 · 6 comments
Open

Which Web APIs should we be looking at? #56

gbaptista opened this issue Feb 11, 2018 · 6 comments
Labels
help wanted Extra attention is needed question Further information is requested

Comments

@gbaptista
Copy link
Owner

gbaptista commented Feb 11, 2018

Currently we can identify and/or block the following Web APIs:

WebAPI method intercepted? reported? can be blocked?
EventTarget removeEventListener
EventTarget addEventListener
Battery Status getBattery
Fetch API fetch
Gamepad API getGamepads
Geolocation getCurrentPosition
Geolocation watchPosition
HTTP headers User-Agent
NavigatorID userAgent
Window setInterval
Window setTimeout
Window requestAnimationFrame
WebSocket send
XMLHttpRequest open
XMLHttpRequest send

Update: Including Battery Status, Gamepad API, HTTP headers and NavigatorID.
Update 2: Including requestAnimationFrame.

See more details at: What is detected?

Question: What other web APIs should we intercept?

Mozilla has incredible documentation on the various existing Web APIs: MDN: Web APIs

Ideally we could try to identify all. But this is not necessarily the best approach since some of them may not cause damage that would justify the block and would confuse even more on what to block or not.

I've been thinking about looking at these two:

Requests are guaranteed to be initiated before a page is unloaded and they are run to completion.

When I leave the website, will you still collect data about me? why?

...which provides the ability to recognize voice context from an audio input...

Is it possible for a website to be transcribing my conversations when my microphone is enabled? 🤔

@gbaptista gbaptista added help wanted Extra attention is needed question Further information is requested labels Feb 11, 2018
@Atavic
Copy link

Atavic commented Feb 12, 2018

SharedWorker, SharedWorkerGlobalScope and the likes. Why?

See the complete list of functions available to workers:

Broadcast Channel API and Channel Messaging API available in workers.

@Atavic
Copy link

Atavic commented Feb 19, 2018

Generic Sensor API: Security and privacy considerations

The leaking battery: A privacy analysis of the HTML5 Battery Status API [PDF]

Links found here.

@gbaptista
Copy link
Owner Author

@Atavic Great suggestions, thank you! I'm reading more about each one and creating the interceptions.

New ones that are available in version 0.0.22:

More details: What is detected?

@Atavic
Copy link

Atavic commented Oct 26, 2018

@DeronLJ
Copy link

DeronLJ commented Aug 9, 2019

If I had to vote for one, it would be window.requestAmimationFrame. I have encountered a few web sites with unneeded and poorly written animations that really slow things down.

You might want to take a look at the Web API Manager extension. The author no longer maintains it, but he has grouping of lite settings you could consider detecting by default. I used it before I came across Luminous.

@gbaptista
Copy link
Owner Author

@DeronLJ requestAmimationFrame is a good one! Detection added: Support for requestAnimationFrame() #115.

Available in version 0.0.28.

Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed question Further information is requested
Projects
None yet
Development

No branches or pull requests

3 participants