1

所以我想要的最後一件事是任何訪問數據庫的人都不應該這樣做。我的應用程序上的用戶創建一個帳戶,其中有一個密鑰和我的數據庫中的子項(易於訪問用戶配置文件),並且還創建了一個身份驗證帳戶。數據庫規則規定只有經過身份驗證的用戶才能訪問數據庫。是否可以通過身份驗證的人以某種方式訪問​​數據庫的其餘部分(通過黑客攻擊)?這是我使用Firebase的第一個應用,我想確保用戶信息將受到保護。保持firebase數據安全

回答

1

它取決於您的規則

如果規則是:

// These rules require authentication 
{ 
    "rules": { 
    ".read": "auth != null", 
    ".write": "auth != null" 
    } 
} 

這種規則允許完全的讀寫訪問身份驗證的用戶您的應用程序的。換句話說,經過身份驗證的用戶可以訪問數據庫中的所有數據而不會發生任何黑客行爲。

如果設置類似於此規則的東西:

{ 
    "rules": { 
    "users": { 
     "$user_id": { 
     // grants write access to the owner of this user account 
     // whose uid must exactly match the key ($user_id) 
     ".write": "$user_id === auth.uid" 
     } 
    } 
    } 
} 

它授予寫訪問該用戶帳戶的擁有者,但只有這個數據的。

這意味着您必須設置規則以獲取數據中每個節點的所需結果。

+0

如果規則是,如果用戶通過身份驗證,然後允許讀/寫訪問,他們將只被允許編輯應用程序允許他們編輯? – XvKnightvX

+0

@XvKnightvX這是不安全的。如果您對數據進行了身份驗證,則可以通過其他方式訪問它們,例如僅使用數據庫的URL。 –

+0

好,所以我需要使用類似於您在答案中的第二個規則集。現在我的應用程序具有用戶類型(用戶管理員所有者),並且每個單獨的業務都有一段數據,而數據庫中包含一個包含所有用戶列表的單獨部分。我將如何去限制用戶根據用戶角色訪問哪些數據? – XvKnightvX