2017-07-17 83 views
0

我是Firebase的初学者,我有一个理论问题。我在Firebase中有一个数据库,我有一个由ReactJS构建的Web应用程序。在数据库中,我有一个用户集合,例如电子邮件和密码以及isAdmin属性。那么,在哪里是等于1,这些用户将是管理员。登录后,我可以检查用户的isAdmin值,但如果有人在客户端更改了JS条件,该怎么办?如果他在客户端更改isAdmin参数,他可以访问站点的管理员部分?我已经阅读关于这个主题的artciles,但我不明白这个安全机制是如何工作的。那么这是现有的威胁还是我错过了什么? 感谢您的解释和答案!Firebase登录 - 管理员规则

回答

0

您通常会确保isAdmin属性只能由授权用户设置。

在许多我的演示项目,我把谁有一个名为whitelist节点下的完全访问权限的用户的UID列表:

whitelist 
    UID1: true 
    UID2: true 

然后在我的数据库我的安全规则,我指定用户谁列入白名单有充分的写访问:

{ 
    "rules": { 
    ".read": true, 
    ".write": "root.child('whitelist').child(auth.uid).exists()" 
    } 
} 

现在有了这个简单的设置所有用户都可以读取整个数据库。但只有管理员可以在数据库中的任何地方写入。普通用户将无法将自己的UID添加到白名单,因为他们不是管理员。

可能有用的一些相关的问题: