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