从 Flutter 移动应用程序调用 Firestore 是不是安全?

Posted

技术标签:

【中文标题】从 Flutter 移动应用程序调用 Firestore 是不是安全?【英文标题】:Is it secure to call firestore from flutter mobile apps?从 Flutter 移动应用程序调用 Firestore 是否安全? 【发布时间】:2019-03-01 07:17:54 【问题描述】:

我是 Flutter 框架的新手。我正在编写一个连接到 Firestore 的移动应用程序。我想问一下将 Firestore/Firebase 数据库逻辑简单地编码到我们的 Flutter 应用程序中有多安全。用户是否有可能更改移动应用程序构建本身的逻辑并控制发送到 Firestore/Firebase 的内容?此外,仅使用 Firestore/Firebase 的数据库规则就足以保护我的数据库吗?

【问题讨论】:

【参考方案1】:

将数据库查询直接写入应用程序是标准做法。这正是您应该在所有移动应用平台上使用 Firebase SDK 所做的事情。

您还应该假设您发送给最终用户的任何代码都可能被逆向工程并以某种方式受到损害。这并不常见,但很有可能。

您需要做的是使用Firebase Authentication 和Firestore security rules 来保护您在服务器上的数据,以便用户只能做您说他们可以做的事情。您需要设计规则来准确实施您想要保护的内容。

无法确定安全规则是否足以满足您的用例,因为您还没有明确说明您的要求是什么。如果它们还不够,您将不得不将一些工作卸载到您控制的后端,并且它必须检查您想要允许的任何内容。

【讨论】:

感谢您的快速响应!【参考方案2】:

我一直在寻找使用 cloud_firestore 的安全解决方案,但似乎无法通过查询发送身份验证数据。 firebase_auth 会对用户进行认证,cloud_firebase 可以查询,但是两者没有互操作性。

我见过的唯一“解决方案”是使整个数据库可写。

【讨论】:

以上是关于从 Flutter 移动应用程序调用 Firestore 是不是安全?的主要内容,如果未能解决你的问题,请参考以下文章

Flutter / Firebase在null上调用了getter'length'

Flutter Geolocator 显示方法 toDouble() 在 null 上被调用

将已发布的移动应用程序开发语言从 ionic 更改为 Flutter

在 Flutter Web 中从 JS 调用 Dart 方法

移动端混合开发Flutter入坑widgets介绍

致命错误:集成 firestore 后在 Flutter iOS 构建中找不到“openssl/x509.h”文件