如何在反编译apk中获取Google-Service.Json文件?

22

我想知道在反编译安卓apk时是否可以获取google-service.json文件。因为在firebase中,Google-Service json文件包含了项目的所有密钥。

1个回答

28

您的APK中未包含JSON文件,而您的谷歌/ Firebase Gradle插件会读取JSON文件并将其插入到string资源文件中。但是,使用诸如apktool之类的工具进行反向工程的人可以访问这些资源文件,包括您在Java代码中放置的字符串资源文件和原始字符串。

如果您对APK进行反编译,则可以从字符串资源文件中获取这些secret详细信息。

  <string name="google_api_key">your key</string>
  <string name="firebase_database_url">firebase db url</string>

如果您添加了 Firebase ACL,则只有经授权的用户才能访问数据,并且使用的密钥只能与已签名您的密钥库的 APK 一起使用(请确保在 Firebase 控制台中为 Android 应用生成的 sha1 哈希值)。

编辑:有关 ACL 或保护 Firebase 数据库操作的详细信息,请参见此处


1
Firebase数据库对安全是否存在风险?有没有人可以使用这个密钥访问我的Firebase项目数据库? - user3527444
2
如果您添加了Firebase ACL,那么只有经过授权的用户才能访问数据,而且您正在使用的密钥只能与使用您的密钥库签名的apk一起使用(请确保在Firebase控制台为Android应用程序生成的sha1哈希)。 - Renjith Thankachan
@IAmBatman,你能告诉我ACL是什么,或者给我一个ACL文档的链接或任何示例吗? - Vivek Barai
编辑了答案以包括链接,@VívêkBåräì 如果需要更多细节,请在评论中告诉我。 - Renjith Thankachan
我按照这个步骤运行了 DatabaseReference ref = FirebaseDatabase.instance.ref(); 然后是 DatabaseEvent event = await ref.once();。但是当我打印 event.snapshot.data 时什么也没有输出。这是在Flutter中的情况。这是否是ACL开启时的情况? - West
显示剩余8条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接