【问题标题】:Is this Firebase/Firestore security rule for anonymously authenticated users safe?匿名身份验证用户的这个 Firebase/Firestore 安全规则是否安全?
【发布时间】:2021-07-07 12:35:20
【问题描述】:

我有一个使用 API 提取数据的 Flutter 应用。我的 API 密钥是唯一存储在整个 Firestore 数据库中的东西。我的 Flutter 应用从 Firestore 检索 API 密钥,然后使用它来获取数据。

我的应用还启用了匿名身份验证。我的应用程序在启动时会创建一个匿名用户。我的应用不允许用户创建帐户或注册。

以下是我目前拥有的 Firestore 安全规则,我不确定是否可以对其进行改进以使其更安全地免受恶意攻击。我的规则指向一个非常具体的文档myAPIKeyDocument,只允许授权用户使用get,不允许写入。

如果我希望我的应用授予的唯一权限是匿名身份验证用户读取我的 API 密钥的权限,这些规则是否安全?而且,if request.auth.uid != null; 真的有什么不同吗,因为我的应用程序的所有用户都将自动进行匿名身份验证?

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /myDataCollection/myAPIKeyDocument {
      allow get: if request.auth.uid != null;
      allow write: if false;
    }
  }
}

【问题讨论】:

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


    【解决方案1】:

    如果您的应用程序中有权访问您的 API 密钥的任何用户都足够安全,那么您就可以了。就我个人而言,我会将任何需要 API 密钥的逻辑从客户端应用程序迁移到 Firebase 函数中。这样您就可以更严格地控​​制安全性,只允许来自您的应用的请求。

    使用匿名身份验证,您当前的规则与您项目的当前结构一样好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-07-05
      • 2019-01-20
      • 1970-01-01
      • 2021-07-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多