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

"userSync" module initially calls "cookiesAreEnabled" #8651

Closed
renebaudisch opened this issue Jul 6, 2022 · 6 comments · Fixed by #8661
Closed

"userSync" module initially calls "cookiesAreEnabled" #8651

renebaudisch opened this issue Jul 6, 2022 · 6 comments · Fixed by #8661
Assignees
Labels

Comments

@renebaudisch
Copy link
Contributor

Type of issue

Privacy - GDPR - Purpose One

Description

"userSync" module initially calls "cookiesAreEnabled" from the sessionManager and is writing and reading the device storage regardless of consent.

Steps to reproduce

I prepared a testpage where you can see that before the cmp is shown the LS get's written with cookieTest:
https://reports.asadcdn.com/demopages/2022/prebid.html

If it is too fast, set a breakpoint here:
image

Test page

https://reports.asadcdn.com/demopages/2022/prebid.html

Expected results

Not accessing cookies/LS before user interacted with cmp

Actual results

Writes test value cookieTest regardless to CMP.

Platform details

latest pbjs all platforms

Other information

For more information please read:
#8410
#8613

@dgirardi
Copy link
Collaborator

dgirardi commented Jul 6, 2022

What is the desired behavior - storage should not be touched at all when there is not, or there might not be consent for it? (userId is not the only offender in that case)

Does it matter that a temporary "probe" cookie like this one is not personally identifiable data, and is to the best of my knowledge not protected by GPDR? are you using some auditing tool that is offended by this usage?

@renebaudisch
Copy link
Contributor Author

Our company lawyers have been contacted because of this cookieTest and they therefore pleased us to get rid of it. So at least in Germany there seems to be the opinion in law that these probes also are protected by GDPR, as it is a third party ad technology and by that term not necessary to operate the page and so has to have device access consent aka purpose one, but I'm not a lawyer.

But it doesn't also seem logical to check for LS if the user disallows the usage of it.
Even if this would be fine by law, all further access would be protected by GDPR and so even it is accessible by test the vendors may not, so why check at all in first? Why not only check when needed to avoid being affected by a law?

@patmmccann
Copy link
Collaborator

category translation, brand exclusion, and fpd enrichment modules have similar behavior. We'll want to put this interpretation of the law [remove device access for storage items critical to basic function before consent] behind config

@dgirardi
Copy link
Collaborator

dgirardi commented Jul 6, 2022

I agree that there's no need to check for storage if there is no consent, it's an accident that's what happens now, but there's a wider problem of doing without usage of storage that (so far) we thought was OK. I think we can fix the userId case by addressing that check and the storing of the consent string (which also bypasses GDPR, but I think it's just an optimization and not mandatory).

@dgirardi
Copy link
Collaborator

dgirardi commented Jul 6, 2022

I believe the fix here is:

There's also some testing to do at least for fpdEnrichments to see that it doesn't populate a bogus domain if consent was declined for cookies.

@renebaudisch
Copy link
Contributor Author

Whatever solves the unconsented access is fine for me, and it sound like a plan.
I also just wanted to save you work but without that deep knowledge you have this seems to makes more work than it avoids.
Sorry for that. I'll stay quiet from now on. Thank you a lot in advance everybody.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment