我正在构建一个游戏Angular
并且(有史以来第一次)我尝试添加一个高分表。我已经设置了一个Firebase
帐户并获得了Firestore (Beta)
数据库正在工作并已连接。
我想要一个非常简单的高分系统。用户不需要登录或创建帐户,您只需打开并玩,然后,如果您获得高分,请输入您的名字,它会被记录并显示在表格中。
所以我的问题是 - 在不需要登录并且只需要基本登录的情况下姓名/分数/时间戳数据已保存,仅保留如下所示的安全规则是否可以接受,或者是否有更好的方法来构建它们?
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write;
}
}
}
事实上,我收到一条警告,说我的数据库对任何有参考资料的人开放,但这在我的特定情况下真的那么糟糕吗?是否存在我作为数据库新手没有看到的问题?
任何建议都会很棒,因为这对我来说是新的(而且复杂的)领域。
Cheers
我希望我可以在这里使用红色闪烁下划线的文本,但是你绝对不应该让你的数据库保留这个规则集。
任何玩您游戏的人都会看到您的数据库。使用您拥有的规则集,任何人都可以在数据库中读取和写入任何内容(而不仅仅是您的记分板)。您将允许任何人使用您的数据库运行自己的系统,费用将从您的帐户中扣除。
根据您提供的描述,您至少应该:
- 只允许读取和写入您的记分板集合
- 验证分数是一个有效值(例如整数并且在一定范围内)
- 验证名称是否为有效值(有助于防止可能的 XSS 攻击)
- 验证除以下之外的其他字段
score
and name
被写入文档(因此人们无法隐藏其他有效负载)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)