cliqz-oss / browser-core

Cliqz features, shared across products including Cliqz browsers for Windows, Mac, Android and iOS
https://cliqz.com
Mozilla Public License 2.0
104 stars 35 forks source link

Question about 3rd party cookie blocking exceptions #58

Open cowlicks opened 6 years ago

cowlicks commented 6 years ago

Hello, I've been working on an anti tracking browser extension and was researching other projects. The project (privacy possum) also blocks 3rd party cookies, like cliqz. I've been trying to figure out a way to avoid breakages of non-tracking 3rd party iframes.

In your blog post you say "In order to enable this use case, our system allows cookies in cases when user interaction with the widget is detected". I was reading modules/antitracking/sources/cookie-context.es and oauth-detector.es to try to gain some insight. Do you just detect oauth, then allow cookies for this case? Are there other cases where you allow cookies? Is there documentation that explains more about how this works?

sammacbeth commented 6 years ago

Hi @cowlicks.

Sorry for not replying earlier, I was not watching this repo for questions.

We currently have multiple different heuristics for allowing third-party cookies in limited cases:

Unfortunately there are lots of edge-cases around the web, as many sites assume 3rd party cookies are allowed, and simply break when they are not. With these heuristics we manage to reduce some of the main causes of breakage.

cowlicks commented 6 years ago

Thank you @sammacbeth these all seem reasonable. I'm trying to figure out which to implement first with a score like number-of-cases-fixed / difficulty-to-implement. However I don't have a sense of what number-of-cases-fixed looks like for these, do you have any idea?

For now I'm starting with click detection, since it seems easyish and like it'll catch a lot of cases.

Redirect stuff seems a little harder, but I have no-clue how many cases it fixes.

OAuth detection seems hardest bc I'm most ignorant about it, but it also seems like it fixes many important cases that are annoying to users.