【问题标题】:Firestore public collection rulesFirestore 公共收集规则
【发布时间】:2020-03-06 02:37:08
【问题描述】:

我有一个基本上是公共项目列表的网络应用程序,未经身份验证的用户可以搜索数据库并列出集合中的搜索结果。在我开始每天收到来自Firebase 的关于“我的Firestore 数据库中的不安全规则”的电子邮件之前,我认为一切正常,但现在我开始怀疑它们了。

这是我的规则:

service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
     allow read: if true;
     allow write: if request.auth.uid !=null;
    }
  }
}

我是Firebase/Firestore 的新手并试图理解:

1- 数据本来是公开的,但从 Firebase 收到电子邮件,这些规则真的有问题吗?

2- 虽然数据是要公开的,但如果有人只是顺便来一次并下载整个集合,那就太糟糕了。因此,是否可以通过某种方式阻止对集合/文档的访问来限制公共访问,除非请求来自 Web 应用程序/域?也许某种形式的令牌?还是其他方法?

【问题讨论】:

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


    【解决方案1】:

    目前,您的规则允许公开读取您数据库中的所有文档,以及向经过身份验证的用户写入所有文档的权限。 Firebase 通常认为这是不安全的。

    全局递归/{document=**} 通配符有点危险,因为它可能适用于您不打算可读或可写的数据。相反,您应该在各个规则中调用集合的特定名称。这样,如果您创建新集合,它们将不会自动包含在通配符中。

    一般来说,您的规则应该尽可能具体,而不是依赖于全局递归通配符。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-17
      • 1970-01-01
      • 2020-11-07
      • 2018-11-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多