使用规则保护 Firestore 数据库。检查身份验证。够了吗?

2024-05-16

我是 Firebase 新手,正在尝试了解数据库规则。我正在使用 Firestore。

我有一个数据库,基本上需要所有用户读取,也需要写入。所有用户都可以查看数据库中的文档,并通过某些操作更改某些字段。在某些情况下,他们会删除某些旧的过期文档。

现在,我明白我不能让读写对所有人开放,因为这是不安全的。所以我使用身份验证,我将对用户进行匿名身份验证,以便只有经过身份验证的用户才能访问。

我明白这可以完成工作:

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

现在,我的问题是,这足够了吗?我不是黑客,所以我不完全知道黑客如何破解和删除/更改我的数据库中的内容,但这是否意味着只能通过使用该应用程序对数据库进行更改?如果有人不使用该应用程序,他们仍然可以破解这个程序,并以其他非法方式进行身份验证。

非常感谢您的帮助,我试图阅读以了解详情,但没有成功。


Firebase 安全规则无法限制对单个应用的访问。所有具有互联网连接的人都可以公开使用所有 API。它们都记录在这里:https://firebase.google.com/docs/reference/rest/auth https://firebase.google.com/docs/reference/rest/auth

Firebase 身份验证的目的是确保各个用户的个人访问得到适当的控制。一旦您允许用户使用匿名或电子邮件身份验证创建帐户,他们就可以按照这些规则完全访问数据库中的所有文档。因此,根据该词的大多数定义,您现在所拥有的并不是真正的“安全”。您必须决定这对于您的目的来说是否足够“安全”。

您还可能会收到来自 Firebase 的电子邮件,指出您的规则不安全。使用这不是一个好主意/{document=**}像这样,它匹配所有文档,这可能不是您想要的。至少,您应该调出您希望用户访问的各个集合,而不是使用此全局通配符。

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

使用规则保护 Firestore 数据库。检查身份验证。够了吗? 的相关文章

  • Firebase.ServerValue.TIMESTAMP 在直接 child_added 上返回不同的值

    我有一个带有服务器时间戳的 Firebase Push 其中child added听众已经在听了 非常令人惊讶的是 价值又回到了child added事件与 Firebase 数据库节点中实际存储的事件大约有 300 毫秒的差异 在同一节点
  • 更改日期调用一次功能

    我有一个非常简单的问题 我似乎无法弄清楚 我使用 AngularJS 和 Firebase 作为后端 基本上 我有一个函数 我想每天在午夜运行一次 以便进行值重置 将某些对象属性设置为 false 等 当我手动运行该函数时 该函数运行良好并
  • Firebase中基于多个where子句的查询

    movies movie1 genre comedy name As good as it gets lead Jack Nicholson movie2 genre Horror name The Shining lead Jack Ni
  • Firebase 验证电子邮件模板编辑

    是否有或将会有任何方式来编辑验证电子邮件模板或使用不同的语言 而不仅仅是英语 对于非英语用户来说 用户体验很糟糕 请您分享一下此功能的路线图 谢谢 托马斯 在发送 firebase 电子邮件之前 您可以设置模板的语言 您可以在firebas
  • 在flutter中从cloud_firestore删除文档

    我正在返回一个streamBuilder在streamBuider内部 它返回一个小部件 现在我已经用可忽略的方式包装了一个小部件 以便我可以从 cloud firestore 的集合中删除该文档 showingTheSelectedDat
  • Firebase 存储 URL 不断随着新令牌的变化而变化

    我正在尝试使用 firebase 数据库和存储构建社交媒体应用程序 以下是预期的流程 用户上传个人资料图片 该图片存储在当前用户文件夹中的 Firebase 存储中 并且 URL 存储在 Firebase 数据库中以便快速访问 工作正常 用
  • 为 Firebase 项目中的成员分配角色

    我通过控制台在我的 Firebase 项目中添加具有 项目编辑器 角色的成员 该角色具有文档中的所有查看权限 但通过以会员身份登录 我无法看到分析 我尝试将角色更改为 项目所有者 但分析仍然不可见 我是第一次使用 Firebase 并且对角
  • Firebase获取孩子ID swift ios

    我的 Firebase 看起来像这样 贝娄Active Orders看来childs根据他们的不同有不同的名字UID 用户身份 这是我的代码 用于获取孩子的 ID 无论孩子的名字是什么 但它似乎根本不起作用 获得的正确方法是什么child
  • 使用 OneSignal/Firebase 从 iOS 设备发送推送通知

    我正在开发一个应用程序 并试图找出当不同用户执行特定操作时如何通知特定用户 我试图避免设置自己的后端服务器 因为我相信我想做的事情可以通过 OneSignal Firebase 来完成 我还没有尝试过 但我认为每个用户都可以获得自己的 On
  • 获取接收者的设备令牌以在 Firebase 中发送通知

    所以我正在学习如何使用 firebase 发送设备到设备的通知 我看到了这个answer https stackoverflow com a 42548586 5237289发送通知 看起来很简单 现在 我知道要获取发件人的令牌 它应该如下
  • 使用 firebase 过滤分页列表

    我正在尝试使用 firebase 和 swift 制作一个分页过滤列表 但请随意用您最喜欢的编程语言回答 而不过滤客户端上检索到的数据 假设我有这个结构 matches match 1 name Match 1 users user 1 o
  • 如何在反编译apk中获取Google-Service.Json文件?

    我想知道是否有可能获得google service json对 Android apk 进行逆向工程时的文件 因为在 firebase Google Service json 文件中包含项目的所有密钥 JSON 文件不包含在您的 APK 中
  • 是否有 API 可以*更改* Firebase 远程配置值?

    Firebase 控制台支持轻松配置远程配置参数 在我们的应用程序中 每个用户都有不同的远程配置 这些配置是在我们自己的门户网站上设置的 是否有任何 API 可以让我将配置从我自己的门户推送到 Firebase 远程配置服务器 然后在 An
  • 使用全局变量从内部函数获取空字符串

    请帮助我解决一些小问题 我确信你能做到 D 我试图在 firestore 文档 user cases information 上设置一个字段 其中包含一个字段 case number 首先我声明这个全局变量 private String c
  • Firebase 数据库规则时间戳问题

    自 2017 年 10 月 29 日时间转移以来 我在使用 Firebase 产品进行开发时遇到了一些非常奇怪的行为 我正在使用 Ionic 3 开发一个混合应用程序 当我在浏览器 移动模拟设备 中进行开发和测试时 一切正常 一旦我切换到我
  • Firebase + Node.js:错误:找不到 XMLHttpRequest 兼容性库

    Firebase Node js On iOS 安装的 Node js npm 安装 firebase save 节点测试 js 其中 test js 是一个非常简单的连接到 Firebase 的脚本 var firebase requir
  • Firebase:用户注册后如何进行电话号码验证?

    所以我知道我可以使用电子邮件验证或电话号码验证 但我想做的是在用户注册或登录后进行电话号码验证 如何连接这两种身份验证方法 最后 Firebase中是否有一个函数可以检查用户是否通过电话号码验证 谢谢 即使用户已通过身份验证 您仍然可以使用
  • 我想要有条件的登录导航,没有 MAIN 片段或按钮

    我正在使用 Android Jetpack 导航组件 实时数据和 Firebase 我希望工作流程就像用户打开应用程序时一样 然后根据登录 注销状态导航到登录 配置文件片段 而不需要任何主片段或按钮 请 我的应用程序中没有主要片段 用户启动
  • 使用部分字符串匹配进行 Firebase 查询[重复]

    这个问题在这里已经有答案了 假设我有一个简单的 firebase 实时数据库结构 其中关键是username其值为userid 现在我想搜索userid by username 如果用户名匹配 这很容易 但如何获得部分匹配的答案 更清楚地说
  • (Unity 中的 Firebase 数据库)在 Android 构建期间在 Temp 中缺少classes.jar

    I am using Firebase Database in my Unity project but I am having some issues when building the project for android It ru

随机推荐

  • 如何在 Python 中的函数入口、内部和退出处进行日志记录

    我希望能够使用 Python 日志记录工具在我的代码中进行简单且一致的日志记录 我能够执行以下操作 我希望所有现有 未来的模块和函数都有 输入 和 完成 日志消息 我不想添加相同的代码片段来定义日志记录参数 如下所示don t want t
  • Typesafe 存储库和激活器出现问题

    在尝试创建新的 Play Framework 2 3 应用程序时 我收到了未解决的依赖项的错误 我检查了存储库 但无法手动找到依赖项 error update sbt ResolveException unresolved dependen
  • Import-Csv - 成员已存在问题

    我必须将多个 CSV 文件合并为一个文件 每个 CSV 都有一个标题 其中一列标题是相同的 理想情况下 最终文件 all out csv 必须有一个标头 我运行 PowerShell 代码 Import Csv out 1 result c
  • 如何在 Windows CE 中使用 VB.Net 访问条码扫描仪

    最近我被要求开发一个应用程序摩托罗拉 MK4000 http www motorola com Business US EN Business Product and Services Micro Kiosks Micro Kiosks M
  • 在 jQuery 中获取 SELECT 的值和文本[重复]

    这个问题在这里已经有答案了 可能的重复 获取选择框中选定选项标签的值 https stackoverflow com questions 7380604 getting the value of the selected option ta
  • 从另一个 FORM 中取回隐藏的 FORM

    我有两种形式Form1 and Form2 我正在打开Form2 from Form1 on button Click Form2 obj2 new Form2 this Visible false obj2 Show 然后我想回来Form
  • C# 和月历,选择多个日期

    我正在制作一个程序 可以帮助人们用 C 为某个部门 预订 订单 他们需要能够选择不同月份的多个日期 我更愿意拥有它 这样他们就可以单击一个日期 然后按住 Shift 键单击另一个日期以选择这两个日期之间的所有日期 并控制单击以进行单选 取消
  • fadeOut() 和slideUp() 同时进行?

    我已经发现jQuery 淡出然后滑动 https stackoverflow com questions 734554 jquery fadeout then slideup这很好 但不是那个 我怎么能够fadeOut and slideU
  • Emacs Lisp 可以将 lambda 形式分配给像Scheme 这样的变量吗?

    在研究 Emacs Lisp 的符号单元时 我发现像这样的示例函数 defun a rest x x 我可以打电话 symbol function a 返回 lambda rest x x 如果我愿意的话我可以使用它 gt lambda r
  • Ansible local_action 指令

    我对 Ansible 很陌生 有一个简单的问题来了解我的理解local action指示 这是否意味着该命令完全在本地执行 假设你有这样的东西 local action command which nginx register check
  • 在 Lavaan 生长曲线模型中提取个体轨迹

    我已经使用 R 的 Lavaan 包中的 Growth 函数成功地对一项研究的纵向数据进行了建模 我找不到任何关于如何提取每个参与者的预测轨迹的记录 我只能找到整个组的预测轨迹 在摘要输出的 拦截 部分下给出 使用 lavPredict m
  • 如何在 JavaScript 中将变量的内容写入文件[重复]

    这个问题在这里已经有答案了 可能的重复 firefox 如何启用本地 JavaScript 来读取 写入我的 PC 上的文件 https stackoverflow com questions 2846045 firefox how to
  • python 中的 h2o 框架子集

    如何在 python 中对 h2o 框架进行子集化 如果 x 是一个 df 并且 Origin 是一个变量 那么在 pandas 中我们通常可以通过以下方式进行子集化 x x Origin AAF 但使用 h2o 框架会出现以下错误 H2O
  • 使用 Xamarin.Forms 和 Zxing 生成 QR 码

    我在网上看到了很多关于这个的内容 旧帖子 但似乎没有什么对我有用 我正在尝试从字符串中生成二维码并将其显示在应用程序中 这就是我一开始的情况 qrCode new ZXingBarcodeImageView BarcodeFormat Ba
  • OpenGL缓冲区更新[重复]

    这个问题在这里已经有答案了 目前我正在编写一个模拟水的程序 以下是我所做的步骤 创建水面 平面 创建VAO 创建顶点缓冲区对象 在其中存储法线和顶点 将指针绑定到此 VBO 创建索引缓冲区对象 然后我使用 glDrawElements 渲染
  • 当 ViewController 从 UIStoryboard 实例化时,isMemberOfClass 返回 no

    我有一个 OCUnit 测试类 PatientTestViewControllerTests 下面是界面 interface PatientTestViewControllerTests SenTestCase property nonat
  • “Electron”中“BrowserView”和“renderer” React 页面之间的消息

    我正在尝试弄清楚如何在两者之间交换消息main过程和BrowserView 我一直在使用ipc在 之间main过程和renderer 简单 的过程react renderer page 但现在 使用相同的技术 我在console of th
  • LibGDX 非常奇怪的错误 - 对象消失了

    当我创建我的第一个平铺地图创建器时libGDX 我注意到一个非常奇怪的错误 我创建这样的对象网格 private static final int GRID WIDTH 2400 private static final int GRID
  • 如何将 STRUCT - OR - JSON 传递给 Coldfusion CFC 方法

    我有一个现有的 CFC 在将结构传递到方法中时可以正常工作 问题是 我们现在还需要通过 JSON 将数据传递到同一函数中 这是 CFC 片段
  • 使用规则保护 Firestore 数据库。检查身份验证。够了吗?

    我是 Firebase 新手 正在尝试了解数据库规则 我正在使用 Firestore 我有一个数据库 基本上需要所有用户读取 也需要写入 所有用户都可以查看数据库中的文档 并通过某些操作更改某些字段 在某些情况下 他们会删除某些旧的过期文档