flutter - 不安全的 Firestore 规则和应用程序检查 - 未经身份验证的数据库访问的正确方法?

标签 flutter firebase google-cloud-firestore firebase-app-check

我使用 Flutter 构建了一个应用程序 (Android/iOS),允许用户配置该应用程序以接收每日通知。用户还可以提交文本字段。用户无需注册和身份验证。

我正在使用 Firestore 存储应用中的数据。

我设计了该应用,以便 Firestore 规则允许任何访问:

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if true;
    }
  }
}

为了防止任何人访问我的应用的 Firestore 实例,我实现了应用检查,并启用了强制执行。

我开始收到来自 Google 的消息“[Firebase] 您的 Cloud Firestore 数据库有不安全的规则”。

任何人都可以建议:

  1. 我应该忽略 Google 的警告吗?
  2. 当应用不需要时,我是否必须实现用户注册和身份验证?
  3. 我应该以不同的方式构建我的应用吗?
  4. 我应该做点别的吗?

谢谢

卢克

最佳答案

  1. Should I ignore the warnings from Google?

不建议忽略该警告,因为它可能会导致安全问题。

如果您允许任何人访问数据库,那么他们就可以利用并修改或删除您的数据。并且您的数据库仍然不安全

2.Must I implement user registration and authentiation when it's not necessary for the app?

如果不需要为您的应用程序验证用户身份,那么您可以应用一些验证规则来限制某些数据库节点,或者您可以允许 role based access 。通过这种方式,您可以减少安全问题。

@samthecodingman 在类似的 thread 中提供了有关加强数据库以防止安全问题的多种方法的详细信息。

关于flutter - 不安全的 Firestore 规则和应用程序检查 - 未经身份验证的数据库访问的正确方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73301254/

相关文章:

firebase - 错误: Port 5000 is not open,无法启动功能模拟器

ios - 在没有电子邮件地址的情况下创建了经过 Firebase 身份验证的用户 - 来自 IOS 的 Google

firebase - 当存储在firestore数据库中的日期是今天的日期时如何触发功能?

Flutter:如何使用 AnimatedContainer 在列中展开?

Flutter 用 RichText 填充空白

ios - Flutter 登录苹果失败

firebase - 带 firebase 的 Nodemcu(ESP8266)

node.js - 如何使用云函数在firestore中创建新字段?

ios - 在我的 iOS 应用程序中实现 pod 'Firebase/Firestore' 后无法运行应用程序

Flutter 提供者,在提供者中使用 GlobalKey<FormState> 的正确方法