现在,在我的Firestore规则中,只有注册用户具有对我的项目的读/写访问权限。但是,我还想在注册过程中验证电子邮件是否已经存在,这意味着匿名用户也可以访问我的“用户”数据。
从安全的角度来看,我不确定这是如何合规的。我是否应该创建类似“电子邮件”的集合并在此处复制所有电子邮件地址,并允许匿名用户对此进行查询?
答案 0 :(得分:1)
是的,这确实是典型的方法。将您希望匿名访问的数据复制到一个单独的集合中,并在那里授予更广泛的访问限制。
在该电子邮件地址收集规则中,您通常将use granular rules允许阅读每个特定文档,但不允许列出所有文档。像这样:
match /emails/{email} {
// Applies to single document read requests
allow get: if <condition>;
// Applies to queries and collection read requests
allow list: if false;
}
这意味着一旦用户键入了特定的电子邮件地址,您就可以检查该电子邮件地址是否存在文档。但是他们不能仅仅从集合中获取所有文档来刮擦用户群。