电子邮件:[Firebase] 客户端对 Cloud Firestore 数据库的访问权限将在 X 天后到期

2023-11-22

我收到一封电子邮件,表明我正在“测试模式”下进行开发,但它使我的数据库完全向互联网开放。我最初接受的默认规则如下所示:

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {

    // This rule allows anyone on the internet to view, edit, and delete
    // all data in your Firestore database. It is useful for getting
    // started, but it is configured to expire after 30 days because it
    // leaves your app open to attackers. At that time, all client
    // requests to your Firestore database will be denied.
    //
    // Make sure to write security rules for your app before that time, or else
    // your app will lose access to your Firestore database
    match /{document=**} {
      allow read, write: if request.time < timestamp.date(2019, 12, 14);
    }
  }
}

需要做什么才能满足这封电子邮件的要求?


此处显示的安全规则与以前更加宽松的默认规则不同。这个规则的想法:

match /{document=**} {
  allow read, write: if request.time < timestamp.date(2019, 12, 14);
}

您可以在给定日期之前不受限制地访问 Firestore 数据库,以便自由试用一个月。然而,从长远来看,允许不受限制的访问显然是一个巨大的安全漏洞。

建议的行动方案是首先完全删除此规则,因为它允许任何人读取和写入数据库中的任何内容。然后,设计一些适当的规则,仅允许访问最终用户应该能够访问的集合和文档。对此进行全面讨论对于 Stack Overflow 来说是题外话(因为我们不知道您的应用程序的要求),但这里有一些开始学习安全规则的好地方:

  • 文档
  • 这个视频系列

您应该做的是调出数据库中每个集合和子集合的访问约束。理想情况下,您应该锁定对所有集合的未经身份验证的写入访问权限,除非绝对需要。在最好的情况下,您使用 Firebase 身份验证来帮助控制对文档的访问仅根据经过身份验证的用户的需要.

或者,如果您(暂时)完成了数据库的使用,则可以仅使用以下规则来完全阻止从 Web 和移动客户端访问数据库:

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

根据此规则,仍然允许使用 Firebase Admin SDK 或其他 Cloud SDK 从后端代码进行访问。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

电子邮件:[Firebase] 客户端对 Cloud Firestore 数据库的访问权限将在 X 天后到期 的相关文章

随机推荐

  • Scrapy 设置每个 allowed_domains 的深度限制

    我正在爬行 6 个不同的 allowed domains 并希望限制 1 个域的深度 我将如何限制 scrapy 中该 1 个域的深度 或者是否可以仅爬取站外域的 1 个深度 Scrapy 不提供这样的东西 你可以set the DEPTH
  • ASP.net MVC4:在局部视图中使用不同的模型?

    我刚刚学习 ASP net MVC 所以如果我不能很好地解释我的问题 请多多包涵 是否可以在部分视图中使用与视图中继承的模型不同的模型 My view Index目前继承LoginModel 它处理用户的授权 一旦用户获得授权 我想要Ind
  • 当用户对 JTable 进行排序时,如何跟踪行索引?

    我有一个第一行空白的 JTable 现在 当我通过单击该列根据该列对表格进行排序时 空白行将出现在底部 如果我在空白行中插入一些内容并进行排序 那么该行就会相应地放置 即使已排序 如何跟踪其行索引 我需要访问该行 但如果用户进行排序 那么我
  • 当我想发送“vk_up”时,SendInput 发送“num8”?怎么会?

    好吧 我正在尝试对游戏进行简单的修改 这是模拟按键的代码 define PWNFUNC a static cell AMX NATIVE CALL a AMX amx cell params PWNFUNC EmulateKeyPressI
  • 最大限度地减少由于大量 Numpy 点调用而导致的开销

    我的问题如下 我有一个迭代算法 每次迭代都需要执行几个矩阵 矩阵乘法 dot A i B i 对于 i 1 k 由于这些乘法是使用 Numpy 的点执行的 所以我知道它们正在调用 BLAS 3 实现 速度相当快 问题是调用次数巨大 结果成为
  • Java 中有用于变形图像(或处理)的库吗?

    我计划编写将图像变形为某种形状的软件 基于定义不同图像中相似区域的点和向量 以及 平均 形状的计算 显然这是相当困难的 因此我正在寻找一个可以处理图像变形的库 这样我就可以专注于 GUI 并向库提供必要的坐标 为了澄清一下 我想做的一个例子
  • 如何使用 jQuery 将前一个、当前和下一个单词包装在标签内?

    不知道标题选得好不好 我正在尝试在 HTML JS CSS 中模拟文本选择 以消除真正选择文本时移动设备上的操作气泡 To be more specific I m trying to avoid this 视觉效果 我构建它的方式可能会改
  • 是否可以改进 Scala 中部分应用类型的类型推断?

    我正在尝试改进的类型推断traverse 函数在下面的代码中 import scala language higherKinds trait Applicative AF def ap A B a AF A f AF A gt B AF B
  • Firebase 电话身份验证错误:短信代码已过期

    按照文档实现 FireBase 电话身份验证后 我遇到了几个问题 有些号码无法验证 我使用 Airtel 作为我的服务提供商 在日志上 我可以确认代码已发送 但我的手机上尚未收到 D 电话身份验证 onCodeSent AM5PThBss5
  • Internet Explorer 中跨站点请求的访问控制

    我正在尝试从多个域向单个域发出 AJAX 调用来处理该请求 通过在处理服务器上设置标头 在 Firefox 和 Chrome 中启用跨域很容易 header Access Control Allow Origin 但这无助于在 Intern
  • 如何在 JSX 中添加自定义 html 属性

    背后有不同的原因 但我想知道如何简单地向 JSX 中的元素添加自定义属性 编辑 更新以反映 React 16 React 16 原生支持自定义属性 这意味着向元素添加自定义属性现在就像将其添加到render函数 就像这样 render re
  • 是什么导致异常中的递归原因?

    当在调试器中查看 Java 中的异常时 您经常会发现原因是无限递归的 我假设它是无限的 e g Exception1 Caused by gt Exception2 Caused by gt Exception2 Caused by gt
  • linux如何用同一个驱动程序驱动多个网卡?

    我最近在学习linux网络驱动 我想知道如果我的板上有很多相同类型的网卡 内核如何驱动它们 内核是否需要多次加载同一个驱动程序 我认为这是不可能的 insmod不会这样做 那么我怎样才能让所有同类卡同时工作呢 regards 每张卡的状态
  • 只显示 ng-repeat 的第一个元素

    如何仅显示角度中的第一个元素 我在用着ng repeat像这样 div div product price div div 但既然我不重复 那么我不必使用ng repeat 我怎样才能让它只显示第一个 而不必进入 ng repeat 您可能
  • 从 SQL Server 数据库获取“下一个”行并在单个事务中对其进行标记

    我有一个用作队列的 SQL Server 表 它正在由多线程 很快将成为多服务器 应用程序进行处理 我想要一种方法让进程从队列中声明下一行 将其标记为 进程中 而多个线程 或多个服务器 不可能同时声明同一行 有没有办法更新一行中的标志并同时
  • 让 CMake 为 MSVC 构建共享库 [重复]

    这个问题在这里已经有答案了 我一直在使用 CMake 在 Unix 环境中构建 C 和 C 项目 但是 我也想开始在 MSVC 中进行编译 并且我试图了解 cmake 文档 但我遇到了困难 当我尝试构建时 我不断收到以下消息 链接 致命错误
  • 将特定于页面的 Javascript 添加到 CakePHP 中的每个视图

    为了使我的脚本保持可维护性 我将把每个脚本移到自己的文件中 按控制器和操作组织 scripts which only apply to views posts add ctp app webroot js page posts add js
  • 如何让 Ansible 解释变量内的变量?

    每当我尝试让 Ansible 解释嵌套变量 即另一个变量中的变量 时 我都无法获得预期的结果 给定变量 key bar foo bar baz foo bar baz 我尝试过这三种方法 但动态访问密钥的运气不佳bar字典的foo或钥匙fo
  • QueryDSL 窗口函数

    如何使用窗口函数编写查询并选择 QueryDSL 中的所有字段 在文档中有一个这样的例子 query from employee list SQLExpressions rowNumber over partitionBy employee
  • 电子邮件:[Firebase] 客户端对 Cloud Firestore 数据库的访问权限将在 X 天后到期

    我收到一封电子邮件 表明我正在 测试模式 下进行开发 但它使我的数据库完全向互联网开放 我最初接受的默认规则如下所示 rules version 2 service cloud firestore match databases datab