未经身份验证的Firestore安全规则

问题描述 投票:0回答:1

我将数据存储在Cloud Firestore数据库中。我的应用程序中的用户无需创建帐户即可获取数据,他们也可以在不登录的情况下写入数据。

Google每隔几天就会提醒我,我的数据库不安全,任何人都可以滥用它。如何在不访问Auth变量的情况下进行改进?

我的Firebase规则

service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write;
    }
  }
}

有没有一种方法可以使我的数据库更安全而不使用身份验证?

我的应用逻辑:

我的数据库包含姓氏及其来源。如果有人输入名称,他将从数据库中获取来源。例如:“ Doe”->“墨西哥”。如果数据库中不存在姓氏,则调用API并将其值保存到数据库中。每个用户都需要读取和写入权限。

我在这里可以做什么?

firebase google-cloud-firestore firebase-security firebase-security-rules
1个回答
0
投票

由于您需要写入的操作是受限制的(仅插入新项目,因此您可以选择以下选项:

  • 您可以拒​​绝向最终用户客户端进行写操作,而是向完全执行您需要的操作的云功能发送请求(在验证输入或可能需要的其他任何检查,速率限制等之后)。云功能在通过管理访问权限运行时会忽略安全规则。

  • 使用rules language,您只能允许创建操作。这消除了客户端更新或删除现有数据的能力。这不像以前的方法那么安全,但是对您来说可能没问题:

service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read;
      allow create;
    }
  }
}

此外,请注意,此方法适用于Firestore(正在使用),但不适用于实时数据库。

© www.soinside.com 2019 - 2024. All rights reserved.