Web AppCheck is not GDPR compliant #5095
Replies: 3 comments
-
Normally, I'd say that this sort of oversight is ok for a product that is still in beta like AppCheck, but the fact that the 2nd and 3rd item on google's security checklist and launch checklist are both:
It just doesn't seem great that firebase seems to be advocating for developers to do an action which may get them into legal trouble. https://firebase.google.com/support/guides/security-checklist Even this official firebase video tells developers to
https://youtu.be/Fjj4fmr2t04?t=780 I don't know... If this was an obscure legislation I think it would be excusable. But I would expect google engineers to be at least aware of GDPR when creating new features like this for the web. It doesn't seem fair to put the entire onus on the developer to catch these sort of issues. Especially since firebase is marketed as a backend that developers can use without worrying quite as much about the particular implementation details. |
Beta Was this translation helpful? Give feedback.
-
https://developers.google.com/recaptcha/docs/faq
Is this outdated? Because if not, the cookie falls under legitimate interest and need the usual consent (I am not a lawyer). |
Beta Was this translation helpful? Give feedback.
-
After reading this post, I have another concern: if a user blocks 3rd party cookies, does my app still work? |
Beta Was this translation helpful? Give feedback.
-
I filed a support ticket about this a while ago but I wanted to open a wider discussion on this topic in case other developers are unaware of this issue.
Because App Check in web apps uses ReCAPTCHA v3 by default, it is not possible for a web app to use App Check and be GDPR compliant without first replacing ReCAPTCHA with your own custom attestation provider. There are several sources where you can find more specific information about the problems with ReCAPTCHA and GDPR, but the main issues are these:
These are just some of the legal problems we found when researching GDPR compliance and reCAPTCHA. Also these issues may not be apparent to devs who are currently utilizing AppCheck in their websites.
If you'd like to use AppCheck in your web app and remain GDPR compliant, you'll need to create a custom AppCheckProvider that does not use reCAPTCHA. Firebase's current documentation is fairly vague about how to do this, so here's a step-by-step guide of one possible way to use AppCheck and still comply with GDPR (Disclaimer: Not a lawyer. So please make sure to check your implementation with your own legal advisor):
And that's it!
As you can see, there's quite a bit of setup you'll need to do to make AppCheck GDPR compliant. But it is possible, so as long as you are aware of the privacy issues present in the default AppCheck setup and are aware of the strategies you can use to work around them.
I'm not sure if it's on firebase's roadmap anytime soon, but I think it would help developers out if there was better documentation on how a user can setup custom AppCheck providers. The current documentation doesn't really explain specifics around when the activate() method should be called and doesn't explain that you may need to delay activation until after consent is received from the user.
https://firebase.google.com/docs/app-check/web
https://firebase.google.com/docs/app-check/web-custom-provider
Also, though the documentation notes that you may use a custom attestation provider, the firebase console's AppCheck interface seems to imply that the use of reCAPTCHA is required for AppCheck. To enable AppCheck you must click the blue plus button next to the label "reCAPTCHA". And when you click that button, it says
Which is not necessarily true. If you provide your own custom attestation provider in your codebase, then you can still use AppCheck without reCAPTCHA. Even more worrying, is if you do click the button to register your app for AppCheck, there doesn't seem to be a way to disable reCAPTCHA through the firebase console interface. Or even an option to unregister your app from AppCheck altogether. (Again, reCAPTCHA won't actually be used unless you call appCheck.activate() without providing your own custom attestation provider. But the interface of the console is a bit misleading because it seems to imply that reCAPTCHA is your only option if you are using AppCheck for a web app.)
I understand that, business-wise, it is not really feasible for firebase to recommend alternatives to reCAPTCHA, but even just providing some basic information about the privacy, cookies, and consent issues present in AppCheck's current default web implementation would help out developers who may run into legal trouble if they start using AppCheck on their website without being aware of the minutia of its current implementation.
Beta Was this translation helpful? Give feedback.
All reactions