未经用户身份验证的Cloud Firestore(firebase)的安全规则

时间:2020-10-13 14:06:48

标签: firebase google-cloud-firestore firebase-security

我需要为Flutter项目编写安全的安全规则,该项目不需要用户身份验证(出于某种原因)即可创建新文档。 对于所有其他操作,您需要进行身份验证。 人们也必须使用该应用程序才能创建文档。

仅在特定时间(带有时间戳)限制创建的文档数量并限制大小就足够了吗?还是我还需要考虑其他事项?

我是Firebase的新手,但我有点知道,只要您获得了Project-id,就可以通过命令在没有应用程序的情况下执行Firebase动作(可以从项目中创建)。 例如,这是我尚未考虑的情况。

关于最后一点: Google Cloud Platform Firebase项目中有三个Api密钥: Android密钥,IOS密钥和浏览器密钥。 (由Firebase自动创建) 我以为,如果我对Android密钥施加限制,以便只有Android应用程序可以使用它,并且同样为IOS密钥使用,则可以解决问题,但我不确定。 (然后,我将通过Firebase项目的Google Cloud Platform项目来限制密钥。)

1 个答案:

答案 0 :(得分:0)

仅当人们也使用该应用程序时,他们才能创建文档。

此要求在Firebase上不可执行。任何人都可以从您的应用程序中获取配置数据,并使用该数据以相同的方式调用相同的API。只要呼叫符合您的安全规则,它们就会被允许。而且,由于没有安全规则条款指出“仅来自 my 应用”,因此您不能将访问权限限制为仅使用该应用的用户。

仅在特定时间(带有时间戳)限制创建的文档数量并限制大小就足够了吗?还是我还需要考虑其他事项?

您如何限制时间创建文档?如果要针对每个用户执行此操作,则需要了解该用户。

我建议研究Firebase的匿名身份验证,该身份验证可为您应用程序的用户提供ID,而无需他们输入凭据。