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