如何保护FiRestore数据库 [英] How to secure Firestore database
本文介绍了如何保护FiRestore数据库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
allow read, write true
,这样我就可以访问我的FireStore数据库。
这是实际的Firebase配置格式
{
apiKey: "xxxx",
authDomain: "xxxx-fi.firebaseapp.com",
databaseURL: "https://xxx-fi.firebaseio.com",
projectId: "xx-fi",
storageBucket: "xx-fi.appspot.com",
messagingSenderId: "xxx",
appId: "1:xxx:web:36344b5bddd03c3bcef663"
}
我发现Firebase足以知道projectId
,而不能完全发送上述配置。
{
projectId: "xxxx-fi"
}
只需使用上面的projectId
,我就可以在我的Firestore数据库中进行读写。我觉得这是安全风险,如果有人知道我的项目ID,对他们来说,很容易在我的数据库中进行读写。
那么,为了将我的应用程序转移到生产级别,如何保护我的FireStore数据库?
注意:我已经看到人们在Stackoverflow中发布了类似问题的帖子。但却听不懂。请清楚地分享您的解决方案。TIA
推荐答案
项目ID是必需的,以便Firebase SDK知道从何处读取数据/将数据写入何处。可以,具有该项目ID的任何人都可以与您的Firebase项目通信,这就是Firebase Security Rules的用武之地。
allow read, write: if true
将允许任何人对您的数据库进行读写操作。
allow read: if true;
allow write: if false;
这些规则将允许任何人读取数据库,但不允许任何人写入数据库。现在,如果您要写入数据库,则必须直接从Firebase控制台执行此操作。
其他选项将是使用Firebase身份验证并仅为您自己创建和帐户。然后您可以编写以下规则:
allow write: if request.auth.uid === "yourFirebaseUID";
这将只允许您的帐户写入数据库。
如果您想要允许多个用户写入您的数据库,那么您可以使用Firebase Custom Claims,它们有点像Discorde上的角色。然后,您可以按如下方式检查索赔:allow write: if request.auth.token.writerClaim == true;
您能具体说明您要查找的规则类型吗?我或许可以帮助您以这种方式编写规则或建议任何解决方法。
这篇关于如何保护FiRestore数据库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文