有人可以通过某种方式操纵客户端应用程序来访问我的firestore数据库吗?

时间:2019-11-15 03:16:49

标签: android google-cloud-firestore

我真的很担心我将存储在Firestore中的数据的安全性,我想知道是否有人可以从我的android应用程序中提取google-services.json文件或使用其他工具来访问我的firestore数据库。如果可以,我该如何预防?

2 个答案:

答案 0 :(得分:2)

您应该设置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;
    }
  }
}

查看Get started with Cloud Firestore Security Rules了解更多详细信息。

答案 1 :(得分:2)

如果您的应用使用Firebase服务并使用google-services.json,那么可以,任何人都可以提取该数据。

对于应用程序开发人员而言,问题不在于如何锁定数据(不可能),而是在于如何仅向那些应该能够访问数据的用户提供数据库和存储数据的保护。唯一的解决方案是使用Firebase身份验证来验证访问您应用程序的人员的身份,并使用安全规则来确定谁应该能够读取和写入数据。

目前没有替代方法。如果您不要求用户使用Firebase Auth登录,并且您的安全规则允许对数据进行通用访问,那么互联网上任何知道您的项目名称的人都可以访问该数据。同样,这也不例外。如果您的数据对全世界都是可读和可写的,那么您将需要为此承担潜在的账单后果。

再次,了解您使用的产品的安全规则:实时数据库,Firestore和云存储。

如果安全规则不能满足您的要求,那么您将需要设置一个由您安全控制的后端服务,并通过该后端路由所有客户端访问。您将要使客户端将Firebase身份验证令牌传递到您的端点,以便它可以使用Firebase Admin SDK验证访问。