Firebase实时数据库安全规则(读写)



好的,我有一个连接到应用程序的实时数据库,直到今天,规则(读写(都设置为true,一切都很好。。。。但每次弹出消息说

您的安全规则被定义为公共规则,因此任何人都可以窃取、修改或删除您的数据库中的数据

我尝试了一些事情,但数据没有被访问。。。只有当规则设置为真正的时,才能访问数据

但有什么方法可以修改规则使其更安全

我希望只有少数已知应用程序(我的应用程序(可以访问此数据

从文档中的此处开始,一路完成。它非常实用且易于理解。

只有当规则设置为真正的时,才能访问数据

Firebase RTDB有一个公共URL,所以任何人都可以尝试连接到它。你的工作是决定他们是否可以这样做。如果你对任何路径/节点的规则是这样的,那么任何提出请求的人都可以使用:

{
".read": true,
".write": true
}

如果你只想让你的应用程序的用户连接到RTDB,你可以使用Firebase Auth并使用这样的条件:

{
".read": "auth != null"
".write": "auth != null"
}

我希望只有少数已知应用程序(我的应用程序(可以访问此数据

访问由用户级别决定,而不是由应用程序决定。从文档中的此处开始。

但有什么方法可以修改规则使其更安全吗

在Firebase控制台中,或通过CLI部署它们。如果您是新手,请从Firebase控制台开始,并使用规则游乐场来测试不同的规则。有关详细信息,请参阅文档。

所以,除非有人可以访问我的谷歌帐户或与我的数据库集成的应用程序/网络。。。即使规则设置为true,也没有人可以访问数据,对吗?

您的数据库不是"集成";。它是一个可通过公共URL访问的已部署实例——这就是您的客户端连接到RTDB的方式。如果您的规则允许任何读或写操作,那么您的数据库是广泛的,对所有人都是开放的。因此,您收到的通知您这是不安全的电子邮件。

{
"rules": {
".read": "auth.uid !== null",
".write": "auth.uid !== null"
}
}

当前接受的规则文档

最新更新