我的申请表中有Global Variable
。这是我不想存储的内容,但用户在应用程序运行时应该能够访问。一切正常。
我的问题是,使用全局变量有什么安全隐患?可以从其他应用程序访问吗?
答案 0 :(得分:1)
不,全局变量无法从其他应用程序访问。
答案 1 :(得分:1)
其他应用程序无法访问全局变量,唯一的情况是如果你有root设备而某些恶意应用程序(低级别)可以访问内存,创建应用程序使用的内存转储,而不是搜索你的变量,但是我不确定即使使用root访问也很容易。
但任何人都可以将您的APK文件反编译为smali代码,并轻松找到此变量 如果您的数据非常敏感,则有一些方法可以保护它。
使用应用程序签名加密它,何时需要解密。但它仍然可以通过从应用程序签名获取公钥等来攻击。
根本不要将它存储在设备上(在你的应用程序内部,如全局变量),从服务器解析此变量,此外使用SSL连接。
默认情况下,如果您不使用Content Provider
,其他应用和数据库都无法访问共享首选项。但是通过root访问权限获取应用数据非常容易。
我更喜欢第二种变体,存储在设备上的所有内容都可以比存储在外部存储上更容易。
但即使您正在从服务器解析数据,请记住,不同的网络攻击会发挥作用。
此外,如果您的数据(变量)对所有应用程序都相同,并且如果被盗,所有资源都可以访问,请考虑使用临时令牌或其他具有过期时间的机制。
<强> P.S。强>
Android在基于linux的内核上运行,所有安全机制都适用。因此,每个进程都有自己的内存地址空间,并且不知道系统中的任何其他进程(通常)。