【发布时间】:2020-07-14 21:04:55
【问题描述】:
我正在使用 firebase 创建一个投票应用程序,我需要写下一个安全规则,该规则允许用户仅写入一次文档。我想创建一个已写入文档的用户的用户 ID 列表,然后创建一个规则来检查新请求是否来自已经投票的用户。但是,问题是我将不得不从客户端创建这样一个用户列表,这是不安全的。谁能告诉我如何解决这个问题?
【问题讨论】:
-
“问题是我必须从客户端创建这样一个不安全的用户列表” - 确保它是安全的。您的安全规则可以检查用户的 uid 是否已用于编写文档,只要您限制用户如何编写自己的 UID。
-
@DougStevenson 用户不可能写入存储其投票的文档但不能写入列表。我想不出一种方法来确保他总是将他的 uid 添加到列表中。
-
如果您的规则要求用户将他们的姓名添加到列表中(通过比较列表的前后值),或者甚至创建另一个文档作为批处理/事务的一部分,那么它将被强制执行。
标签: firebase google-cloud-firestore firebase-security