【发布时间】:2020-08-17 02:27:10
【问题描述】:
我有一个非常简单的 Firestore 数据库用于我创建的游戏。我有一个包含文档的用户集合,每个文档都指定了用户的用户名、他们的电子邮件和他们的高分。
我希望每个人都能够阅读数据库中每个人的高分和用户名,因为我有一个列出每个用户的高分和用户名的列表。
但是,我只希望个人能够编写数据库(即提交自己的高分),前提是他们已登录。
因此,我有以下安全规则:
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if request.auth != null;
}
match /Users/{document=**} {
allow read: if true;
}
}
}
我的问题是,这安全吗?我想这意味着从技术上讲,有恶意的用户可以阅读每个用户的电子邮件。有没有办法通过某种方式指定只有每个人都应该能够读取每个用户文档的高分和用户名属性来防止这种情况发生?
此外,此设置确实可以防止恶意用户写入数据库,正确(在此处编辑:我猜这不是 - 我现在正在通过阅读此处的文档https://firebase.google.com/docs/firestore/security/rules-structure 来调查此问题)
我对 Firebase 并不陌生,但我对它的安全规则并不陌生,因为我之前没有将应用程序推送到生产环境,并且希望确保我不会留下任何易受攻击的东西,所以这里有任何反馈/指导感激不尽。
【问题讨论】:
标签: swift firebase google-cloud-firestore firebase-security