用户不控制其注册的电子邮件地址时的Firebase安全性
一个场景:用户不控制其注册的电子邮件地址时的Firebase安全性,firebase,firebase-authentication,google-cloud-firestore,Firebase,Firebase Authentication,Google Cloud Firestore,一个场景: 我使用以下安全规则在Firestore中存储敏感数据: A. allow read: if resource.data.email == request.auth.token.email; B. allow read: if resource.data.email == request.auth.token.email && request.auth.token.email_verified == true; 恶意用户Bob下载我的JavaScript应用程序
- 我使用以下安全规则在Firestore中存储敏感数据:
A. allow read: if resource.data.email == request.auth.token.email; B. allow read: if resource.data.email == request.auth.token.email && request.auth.token.email_verified == true;
- 恶意用户Bob下载我的JavaScript应用程序,并使用客户端调用创建一个包含电子邮件的帐户”x@example“在没有电子邮件验证的情况下,他们无法控制自己选择的密码和密码。Bob现在已登录
- 合法用户Alice希望为自己的电子邮件地址创建帐户”x@example“,执行电子邮件验证并从Firestore读取
你自己尝试过吗?我已经尝试过了,但我想强烈地理解我应该如何再次保护Bob欺骗Alice的电子邮件地址,而不是猜测、弄错以及我的应用程序的声誉受损。谢谢。对于4,我们如何实际阻止Bob读取Alice的数据,我当时试图用规则B保护这些数据?我可以在重置密码时强制刷新吗?听起来你是说在Alice重置密码后Bob将通过规则B,直到刷新发生,这显然是一个很大的安全漏洞,除非我更改某些内容。我缺少的部分是,你应该通过匹配auth.uid(不能伪造)而不是电子邮件地址来保护用户数据(哪些可以被欺骗)?