【问题标题】:Can somebody get Firebase credentials from my apk and use them?有人可以从我的 apk 获取 Firebase 凭据并使用它们吗?
【发布时间】:2017-01-06 20:14:24
【问题描述】:

其他人可以从我的 APK 获取 Firebase 凭据并使用它们吗?添加适用于 Android 的 SHA-1 密钥是否可以防止这种情况发生?

如果它被阻止,我需要什么安全规则,因为只有我的应用中带有我的 SHA-1 的代码才能操作数据库?

如果不阻止,其他人是否可以使用我的 Firebase 数据库,只要他的请求符合安全规则吗? (写第二个客户端,它实际上不能做坏事,但根本不应该被允许。)

我不确定我应该如何考虑安全规则:

A) 保护数据免受坏人的访问和操纵 + B?

B) 只是一组规则来保持数据处于某种状态并防止我的软件发出无效的数据库请求?

【问题讨论】:

    标签: firebase firebase-realtime-database firebase-security


    【解决方案1】:

    我们不会在 json 文件中提供实时数据库机密(或任何其他“机密”材料),这些文件会嵌入到您的应用中。该文件只包含资源标识符,使我们能够知道哪些资源(数据库、存储桶、分析等)要正确验证(我们使用Firebase Authentication 用于这些目的),并且我们处理服务器端授权以确保用户是正确登录。

    如果您正确授权您的请求(例如使用Firebase Realtime Database Rules),您的数据就是安全的!

    我建议观看 The Key to Firebase Security,这是我们的 I/O 演讲之一,其中更详细地讨论了其工作原理。

    【讨论】:

      【解决方案2】:

      可以通过 REST API 或任何客户端库访问 Firebase 数据库。关于客户是否可以做某事的决定完全基于规则。

      您甚至可以在 Web 浏览器中访问数据库 URL,并通过在末尾添加 .json 来查看 JSON 响应,例如https://[YOUR_PROJECT_ID].firebaseio.com/.json

      所以答案肯定是B!新 Firebase 项目中的默认规则是读取和写入数据库需要身份验证,但您可以配置它们以提供您需要的任何级别的保护。

      看看Database Rules quickstart,看看你能做什么!

      【讨论】:

        【解决方案3】:

        firebaser 在这里

        借助名为 Firebase App Check 的新功能,现在实际上可以将对实时数据库的调用限制为仅来自在 Firebase 项目中注册的 iOS、Android 和 Web 应用程序的调用。

        您通常希望将此与 Mike 和 Ian 在他们的回答中描述的基于用户身份验证的安全性结合起来,这样您就有了另一个屏障,可以防止确实使用您的应用的滥用用户。 p>

        【讨论】:

          猜你喜欢
          • 2021-03-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-09-01
          • 2021-04-05
          • 1970-01-01
          • 1970-01-01
          • 2022-01-05
          相关资源
          最近更新 更多