我正在制作一个管理应用程序以控制我的主帐户的firebase数据库,所以想象一个2结构的应用程序 MainActivity和AdminActivity。
因此,在MainActivity中,我将有一个编辑文本来输入密码,并且仅当密码与硬编码密码匹配时,用户才能使用意图进入AdminActivity。
所以我的问题是,此应用程序将只与我呆在一起,但是万一它被错误使用,有人可以在不使用密码或外部使用某些工具的情况下打开AdminActivity吗?我不想在Firebase上实现登录,因此数据库是打开的。
答案 0 :(得分:2)
如果有人掌握了APK,则很容易将其反编译。即使使用混淆(Proguard)也不会隐藏硬编码的字符串常量。然后,攻击者可以尝试在应用程序中找到的所有字符串,直到正确获得密码为止。
假设您的AdminActivity
在清单中被声明为exported="false"
,那么攻击者就不可能直接启动Activity
(就像从另一个应用程序中一样)。但是,如果攻击者掌握了APK,则可以将其安装在具有root用户权限的设备上,然后执行其所需的任何操作,也可以将设备连接到PC并使用ADB直接启动AdminActivity
。
我现在想不起来还有其他6种成功的“绕过密码”方案。
答案 1 :(得分:0)
问题的答案可以是是,也可以是否
为什么是 答:假设在对密码进行硬编码时,将其保存在某个地方,或者如果有人试图查看您的计算机,那么就有可能泄漏密码。
为什么否 答:因为密码是硬编码的,所以您是唯一知道密码的人。用户无法知道。
IMO为了提高安全性,请使用ProGuard保护您的应用。