【发布时间】:2019-11-15 03:16:49
【问题描述】:
我真的很担心我将存储在 Firestore 中的数据的安全性,我想知道是否有人可以从我的 android 应用程序中提取 google-services.json 文件或使用其他一些工具来访问我的 Firestore 数据库.有可能吗?如果可以,我该如何预防?
【问题讨论】:
标签: android google-cloud-firestore
我真的很担心我将存储在 Firestore 中的数据的安全性,我想知道是否有人可以从我的 android 应用程序中提取 google-services.json 文件或使用其他一些工具来访问我的 Firestore 数据库.有可能吗?如果可以,我该如何预防?
【问题讨论】:
标签: android google-cloud-firestore
如果您的应用使用 Firebase 服务并使用 google-services.json,那么可以,任何人都可以提取该数据。
应用程序开发人员的问题不在于如何锁定这些数据(不可能),而是如何保护数据库和存储数据,只允许那些应该能够访问它的用户使用。唯一的解决方案是使用 Firebase 身份验证来验证访问您应用的人的身份,并使用安全规则来确定谁应该能够读取和写入数据。
目前没有其他选择。如果您不要求用户使用 Firebase 身份验证登录,并且您的安全规则允许对数据进行通用访问,那么互联网上知道您项目名称的任何人都可以访问该数据。同样,这一点也不例外。如果您的数据对全世界都是可读可写的,那么您将需要接受由此产生的潜在计费后果。
再次了解您使用的产品的安全规则:实时数据库、Firestore 和 Cloud Storage。
如果安全规则无法满足您的要求,那么您将需要设置一个您可以安全控制的后端服务,并通过该后端路由所有客户端访问。您需要让客户端将 Firebase 身份验证令牌传递给您的端点,以便它可以使用 Firebase Admin SDK 验证访问权限。
【讨论】:
您应该设置 Cloud Firestore 安全规则来限制对数据的访问。这是一个例子:
// Allow read/write access on all documents to any user signed in to the application
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if request.auth.uid != null;
}
}
}
【讨论】: