【发布时间】:2021-07-07 12:35:20
【问题描述】:
我有一个使用 API 提取数据的 Flutter 应用。我的 API 密钥是唯一存储在整个 Firestore 数据库中的东西。我的 Flutter 应用从 Firestore 检索 API 密钥,然后使用它来获取数据。
我的应用还启用了匿名身份验证。我的应用程序在启动时会创建一个匿名用户。我的应用不允许用户创建帐户或注册。
以下是我目前拥有的 Firestore 安全规则,我不确定是否可以对其进行改进以使其更安全地免受恶意攻击。我的规则指向一个非常具体的文档myAPIKeyDocument,只允许授权用户使用get,不允许写入。
如果我希望我的应用授予的唯一权限是匿名身份验证用户读取我的 API 密钥的权限,这些规则是否安全?而且,if request.auth.uid != null; 真的有什么不同吗,因为我的应用程序的所有用户都将自动进行匿名身份验证?
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /myDataCollection/myAPIKeyDocument {
allow get: if request.auth.uid != null;
allow write: if false;
}
}
}
【问题讨论】:
标签: firebase flutter google-cloud-firestore firebase-authentication firebase-security