Database 当不需要站点登录时,让数据库(Cloud Firestore)不受保护是否可以接受?
我正在用Database 当不需要站点登录时,让数据库(Cloud Firestore)不受保护是否可以接受?,database,security,firebase,google-cloud-firestore,database-security,Database,Security,Firebase,Google Cloud Firestore,Database Security,我正在用Angular构建一个游戏,并且(有史以来第一次)尝试添加一个高分表。我已经建立了一个Firebase帐户,并获得了一个Firestore(Beta版)数据库 我想要一个非常简单的高分系统。用户无需登录或创建帐户,您只需打开、播放,然后,如果您获得高分,请输入您的姓名,并将其记录和显示在表中 因此,我的问题是——在不需要登录且只保存基本名称/分数/时间戳数据的情况下,是否可以将我的安全规则保留如下,或者是否有更好的方法来构建它们 service cloud.firestore { m
Angular
构建一个游戏,并且(有史以来第一次)尝试添加一个高分表。我已经建立了一个Firebase
帐户,并获得了一个Firestore(Beta版)
数据库
我想要一个非常简单的高分系统。用户无需登录或创建帐户,您只需打开、播放,然后,如果您获得高分,请输入您的姓名,并将其记录和显示在表中
因此,我的问题是——在不需要登录且只保存基本名称/分数/时间戳数据的情况下,是否可以将我的安全规则保留如下,或者是否有更好的方法来构建它们
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write;
}
}
}
事实上,我得到一个警告,我的数据库对任何有参考资料的人开放,但在我的特殊情况下,这真的很糟糕吗?是否存在我不认为是数据库新手的问题
任何建议都会很好,因为这对我来说是一个新的(复杂的)领域
干杯一般来说,这些设置用于
测试目的
。只有当您决定这些信息可以公开时,才允许用户从数据库中读取。如果您有敏感信息(即用户信息),则必须确保数据库的安全,并且只允许您决定的用户读取这些信息。因此,如果您以后决定添加自动验证,则必须确保数据库的安全。这与写作目的是一样的
希望有帮助。我希望我可以在这里使用带下划线的红色闪烁文本,但是您绝对不应该将此规则集保留在数据库中。 任何玩你的游戏的人都会看到你的数据库。使用您拥有的规则集,任何人都可以在数据库中读写任何内容(不仅仅是记分板)。您将允许任何人使用您的数据库运行自己的系统,费用由您的帐户承担 根据您提供的描述,您至少应该:
- 仅允许对记分板集合进行读写操作
- 验证分数是否为有效值(例如整数且在一定范围内
- 验证名称是否为有效值(帮助防止可能的XSS攻击)
- 验证除了
和score
之外,没有其他字段写入文档(因此人们不能隐藏其他有效负载)name