【问题标题】:Cloud Firestore ignores rulesCloud Firestore 忽略规则
【发布时间】:2020-10-27 13:35:24
【问题描述】:

我在我的项目中使用 Google Cloud Platform Cloud Firestore 数据库。我在开发者模式下启动它来为我的数据建模并用记录填充它。

现在我已准备好投入生产,因此我正在使用 Firebase 控制台而不是 GCP 控制台来制定规则。 但它似乎忽略了我插入的每一条规则。例如,如果我写这样的东西

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if false
    }
  }
}

我尝试提交的每次读取或创建都使用规则操场失败,并显示消息:“模拟读取被拒绝”(例如)

但如果我从我的 node.js 应用程序调用查询,我可以读取、创建、编辑和删除所有内容,就像忽略规则一样。

规则监视器没有显示任何错误。

这与 GCP Firestore 有关吗?我假设他们使用相同的平台,实际上他们经常指向 Firebase 控制台而不是 GCP 控制台进行操作

【问题讨论】:

  • 您可能在您的 nodejs 应用程序中使用了 Admin SDK。 adminSDK 可以做任何事情,因为它只能在受信任的环境中运行,例如服务器。
  • 是的,我确实在使用 Admin SDK。是的,它位于受信任的服务器中。我不知道它绕过了安全规则

标签: node.js firebase google-cloud-firestore


【解决方案1】:

在 NodeJS 上运行的 Admin SDK 可以绕过任何安全规则,并且几乎可以对所有 Firebase 产品执行任何操作。

这样,它只能在管理您的应用的服务器上的受信任环境中运行。它允许更多功能,并允许服务器执行您不​​希望客户端执行的操作(例如更改排行榜)。您可以阅读有关 SDK 及其权限的更多信息here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-21
    • 1970-01-01
    • 2016-02-03
    • 1970-01-01
    • 2019-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多