【问题标题】:Does Firebase App Check discard the need for implementing Security Rules?Firebase App Check 是否放弃了实施安全规则的需要?
【发布时间】:2021-10-15 17:49:31
【问题描述】:

现在,我发布的问题听起来很模糊,因为任何开发团队都不应该在没有 Firebase 安全规则的情况下将应用程序投入生产,但我真正想知道的是恶意用户可能如何访问 Firebase 项目的数据(如果有 AppCheck)。假设我有一个简单的应用程序,可以让用户快速记下笔记(保存到 Firebase Firestore)。现在,每个用户都必须经过身份验证,并且该用户创建的所有笔记都位于带有他们的电子邮件或 uid 的集合中。

如果我仅在 Android 和 iOS 平台上发布此应用程序并且 AppCheck 已安全到位,则在 Firestore 上读取/写入或修改数据的唯一方法是通过在 AppStore 或 PlayStore 上发布的应用程序的正版版本,这意味着未经授权的用户/黑客无法读取或修改任何数据(他们不应该有权访问),除非他们对 android 或 ios 应用程序进行逆向工程或注入允许他们这样做的恶意代码。我无法想象这将是一件容易的事。现在,虽然我将在发布应用程序之前实施 AppCheck 和 Firebase 安全规则,但我如何考虑这种可能性,即应用程序被逆向工程或被黑客入侵?可能性有多大?因为 AppCheck 还声明只允许“来自您的真实应用程序的请求”,我认为这意味着一个未被篡改的应用程序。

【问题讨论】:

    标签: android ios firebase firebase-security


    【解决方案1】:

    虽然 App Check 为您的应用程序添加了一个重要的防止滥用的保护层,但它不会取代 Firebase 的服务器端安全规则。

    虽然 App Check 大大减少了未经授权代码的滥用更改,但与任何运行客户端检查的安全机制一样,恶意用户总是有可能绕过它。

    安全规则仅在服务器上进行评估,任何人都无法绕过。您可以严格控制任何特定用户可以访问的数据。

    通过结合应用检查和安全规则,您可以快速减少广泛的滥用行为,同时还可以对谁可以访问哪些数据保持细粒度的控制。

    我们也在这里就这个话题进行了很好的讨论:What is the purpose of Firebase AppCheck?

    【讨论】:

    • 感谢您的回答,弗兰克。不过,我还有一个疑问 - 存在一个选项,可以将 GCP 控制台上的 firebase 项目的 API 密钥限制为 iOS 和 Android 的特定 AppID。 AppCheck 如何比限制 API 密钥更安全?此外,AppCheck 还不支持 Firestore,我想知道是否应该切换到 RealtimeDB,因为我不必担心未经授权的请求。在这种情况下,您有什么建议?我已经实施了 firestorerules 和 api 密钥限制。但这是否足够?例如 - 黑客可以创建多个“用户”记录来增加我的账单
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-13
    • 2016-10-04
    • 2020-02-15
    • 2021-01-21
    相关资源
    最近更新 更多