【问题标题】:Firebase realtime database security rulesFirebase 实时数据库安全规则
【发布时间】:2020-08-08 09:30:57
【问题描述】:

我创建了一个使用 Firebase 实时数据库的应用。 我对安全规则有一个很大的问题。我的用户不需要登录使用该应用程序,他们可以将数据发送到数据库而无需任何身份验证。 例如:这是一个简单的游戏,他们可以互相玩,然后他们可以保存分数。 我想创建一个安全的数据库,但任何人都可以读写。什么是最好的解决方案?匿名认证?

【问题讨论】:

    标签: android firebase firebase-realtime-database firebase-security


    【解决方案1】:

    如果您不保护您的数据库,任何人都可以编写任何乐谱。

    更糟糕的是,任何人都可以编写自己的应用程序来使用您的数据库,然后您最终会为此付费。如果您不希望这样,请编写仅允许对您的应用有效的确切交互的规则。

    如果您不想要求(甚至是匿名)身份验证,至少要编写验证规则,确保写入的数据符合您的应用和代码的业务规则。这至少减少了其他人出于自己的目的滥用您的数据库的兴趣。

    【讨论】:

      【解决方案2】:

      匿名身份验证总比没有身份验证好。但是您需要注意编写规则,允许每个用户适当地访问他们应该有权访问的数据库的任何部分。简单地允许所有匿名身份验证的用户读取和写入所有内容仍然根本不是真正的“安全”。

      【讨论】:

      • 没关系,但没有用户数据或其他任何东西 - 只是一个数据库,分数 + 时间戳。如果您完成了游戏,您的点数和时间戳将进入数据库,仅此而已。