2017-07-17 86 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添加到白名單,因爲他們不是管理員。

可能有用的一些相關的問題: