【问题标题】:Firebase Auth: What does 'read' and 'write' exactly mean in security rules?Firebase Auth:安全规则中的“读取”和“写入”到底是什么意思?
【发布时间】:2020-09-10 22:28:02
【问题描述】:

我了解安全规则以及如何使用它,但对概念感到困惑。 1)“读取”是否意味着如果我共享我的 Firebase 凭据,客户端用户能够看到我的数据库? 2)“写入”是否意味着客户端用户能够使用 firebase 凭据覆盖我的数据库上的详细信息? 3) 如果我让用户读取 = true,他们是否能够看到我的整个数据库以及一些私人信息?

有人可以准确地分解这一切的含义吗,因为我认为 firebase 并没有准确地提到“读”和“写”到底是什么。

谢谢。

【问题讨论】:

  • “我不认为 firebase 确切地提到了 'read' 和 'write' 实际上是什么”-> 除了 Peter 的回答,我还建议您详细阅读文档 firebase.google.com/docs/database/security,包括所有页面,包括观看视频。

标签: firebase firebase-realtime-database firebase-authentication firebase-security


【解决方案1】:

以下规则:

// These rules give anyone, even people who are not users of your app,
// read and write access to your database
{
  "rules": {
    ".read": true,
    ".write": true
  }
}

意味着每个人都可以访问数据库,如果有人知道项目 ID,那么他们可以执行 curl -X DELETE 并从您的数据库中删除节点。这就是你不使用read = truewrite = true 的原因。这些规则可以保护您的应用:

// These rules don't allow anyone read or write access to your database
{
  "rules": {
    ".read": false,
    ".write": false
  }
}

这意味着用户既不能从数据库中读取数据,也不能向数据库写入任何内容。

https://firebase.google.com/docs/database/security/resolve-insecurities

【讨论】:

  • 所以如果我设置 read = true 和 false = true,他们可以看到我的整个数据库但不做任何修改?抱歉,只是想确认一下,这些是数据库需要考虑的一些重要选项。
  • read = true,他们可以从数据库中读取。因此,在您的代码中,如果您正在检索数据,他们可以在应用程序中看到该数据。 write = false,那么他们不能将数据发送到数据库,所以如果你有一个表单并在提交时将数据发送到数据库,他们就不能这样做,因为它是错误的
  • 对不起就好了!谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-05-16
  • 2016-02-13
  • 2021-07-28
  • 2011-01-05
  • 2011-10-22
  • 1970-01-01
  • 2021-12-11
相关资源
最近更新 更多