android - Firebase:反编译 apk 可以访问我的数据和文件吗?

标签 android firebase

如果有人想通过获取 apk 文件然后自定义它来做其他它不应该做的事情来对我的 android 应用程序进行逆向工程。请记住,apk 文件将包含我们在创建 firebase 项目以链接 android 应用程序时从 firebase 下载的 google-services.json 文件。

问题是:

即使实时数据库或 firebase 存储上有只允许经过身份验证的用户的安全规则。然后黑客可以对应用程序进行反向工程并制作他自己的应用程序,该应用程序具有相同的 google-services.json 文件,然后在编译时黑客可以创建一个帐户并登录到该应用程序(这使他通过了身份验证) 然后也许他可以删除数据并将数据写入实时数据库。

有人可以解释一下安全性如何吗?

最佳答案

一般来说,您应该假设您发送给客户的任何代码都可能遭到破坏。你应该假设他们运行它的设备在他们的完全控制之下,并且他们可以改变你的代码在该设备上执行的方式。问题不在于您的应用程序被反编译,而是您根本无法以任何方式控制执行环境(当然,除非您制造设备并内置了自己的硬件安全性)。

google-services.json 中的数据不是私有(private)数据。您应该假设在您发布应用程序的那一刻,每个人都会知道该文件中的所有信息。将该数据视为告诉您的应用从何处获取数据的唯一标识符。该文件中没有允许攻击者执行您未授权他们执行的任何操作的密码或凭据。

您可以将安全规则与 Firebase 身份验证结合使用,以控制谁可以对 Firebase 中托管的数据执行什么操作。阻止人们在您的应用中创建随机帐户是不可能的,但可以限制他们可以做什么。

如果您发现您的应用受到某种形式的滥用,您可以关闭滥用者的帐户,并联系 Firebase 支持人员报告滥用行为。

关于android - Firebase:反编译 apk 可以访问我的数据和文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53654551/

相关文章:

java - 简单的 for 循环在某些手机上无法正常工作。优化不好?

android - 离线时 FireBase Cloud Messaging (FCM) 订阅/取消订阅主题

android - Opus Codec Android 转换码流

android - 看到一次后不要显示通知

使用 orderByChild 和 equalTo 来冰壶 Firebase?

javascript - 在新 API 的两个单独文件中初始化 Firebase 引用

angular - 没有 AngularFirestore 的提供者

java - 安卓SDK : NSDictionary dictionary with objectsForKeys Equivalent

android - 如何使用 react-native-firebase 从 Firebase 动态链接接收查询参数?

firebase - Flutter Firestore StreamTransformer DocumentSnapshot错误