【问题标题】:Can someone access my Firestore database by somehow manipulating client app?有人可以通过某种方式操纵客户端应用程序来访问我的 Firestore 数据库吗?
【发布时间】:2019-11-15 03:16:49
【问题描述】:

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

【问题讨论】:

    标签: android google-cloud-firestore


    【解决方案1】:

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

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

    目前没有其他选择。如果您不要求用户使用 Firebase 身份验证登录,并且您的安全规则允许对数据进行通用访问,那么互联网上知道您项目名称的任何人都可以访问该数据。同样,这一点也不例外。如果您的数据对全世界都是可读可写的,那么您将需要接受由此产生的潜在计费后果。

    再次了解您使用的产品的安全规则:实时数据库、Firestore 和 Cloud Storage。

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

    【讨论】:

      【解决方案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了解更多详情。

      【讨论】:

      • 是的,我知道,但它不能回答我对有人入侵我的客户端应用程序的担忧。
      • 你的意思是黑客攻击?以物理方式访问安装了您的应用的设备或获取您应用的 APK?
      猜你喜欢
      • 2012-05-19
      • 1970-01-01
      • 1970-01-01
      • 2017-08-13
      • 1970-01-01
      • 2019-11-16
      • 2018-01-26
      • 2023-03-09
      • 1970-01-01
      相关资源
      最近更新 更多