Firebase Api Key可以在其他应用程序上使用(反编译的APK)

时间:2018-11-19 22:18:54

标签: android firebase firebase-realtime-database firebase-authentication decompiling

我们打算将Firebase匿名身份验证和实时数据库用于我们的Android应用程序。然后,我们想尝试一下是否可以将Firebase Api密钥用于其他应用程序来访问数据库,并创建一个具有相同程序包名称的假应用程序,将现有的Firebase Api密钥放入其中,然后使用全新的Sign密钥对其进行签名。一旦运行它,它就可以访问我们以前的应用程序的Firebase后端。 (由于可以轻松地从apk提取Firebase Api密钥,因此我们希望模拟相同的操作)

尽管大多数答案都说Firebase检查了App的签名,但我们能够使用完全不同的APK访问数据库。

我在Firebase配置方面是否缺少任何内容?

编辑:

我逐步进行的操作:

1)创建一个新的Android项目,其程序包名称与现有的相同。

2)将现有项目的google-services.json放到新项目中

3)将以下代码写入新项目

final FirebaseAuth mAuth;
mAuth = FirebaseAuth.getInstance();
FirebaseUser currentUser = mAuth.getCurrentUser();

final String TAG = "AuthTest";
mAuth.signInAnonymously()
   .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
    @Override
    public void onComplete(@NonNull Task<AuthResult> task) {
    if (task.isSuccessful()) {
        // Sign in success, update UI with the signed-in user's information
        Log.d(TAG, "signInAnonymously:success");
        FirebaseUser user = mAuth.getCurrentUser();
    } else {
        // If sign in fails, display a message to the user.
        Log.w(TAG, "signInAnonymously:failure", task.getException());


    }
}
});

4)使用全新的签名密钥对APK进行了签名

5)在设备上运行应用程序。

结果:在我们现有的Firebase项目上创建了一个匿名用户

0 个答案:

没有答案