【发布时间】:2021-01-14 01:13:21
【问题描述】:
我有以下 Firebase 实时数据库规则:
{
"rules": {
".read" : "auth != null",
".write": false,
"Games": {
".indexOn" : "WeekId"
},
"Version": {
".read" : true
}
...
}
我不断收到来自 Google 的以下电子邮件:
[Firebase] 您的实时数据库“xxx-9e542”的规则不安全`
我们检测到您的安全规则存在以下问题: 任何登录用户都可以读取您的整个数据库 如果没有强大的安全规则,任何拥有您数据库地址的人都可以对其进行读/写,从而使您的数据容易受到攻击者窃取、修改或删除数据以及创建代价高昂的操作的攻击。
因此,根据我上面的规则,我知道,我已经制定了规则,允许登录用户读取Games 节点,并且所有用户都可以读取Version 节点,即使是未经身份验证的用户。
据我所知,它需要这样,因为我要求所有登录用户都能够访问Games 节点信息,否则他们将如何查看他们可以从中选择的游戏列表!?
至于Version 节点,我在我需要下载我的应用程序的每个人“强制升级”我的应用程序的情况下使用它,因为需要进行更改。在这种情况下,我需要下载了我的应用程序的旧版本并且“已登录”或“未登录”的用户并强制他们更新应用程序,否则他们将无法使用它。
任何人都可以告诉我,如果我不了解我的安全规则结构,或者这是否“正常”并且我收到的电子邮件只是作为仅供参考!?
其他人是如何制定规则的!?或者设置安全规则的“最佳实践”是什么!?尤其是如果您需要登录用户 24/7 全天候访问任何特定节点的信息!?
【问题讨论】:
标签: firebase firebase-realtime-database firebase-security