2

Global Variable的申请中有。这是我不想存储的东西,但用户应该能够在应用程序运行时访问它。所有作品。

我的问题是,使用全局变量有什么安全隐患?它可以从其他应用程序访问吗?

4

2 回答 2

2

全局变量不能被其他应用程序访问,唯一的情况是你有根设备并且一些恶意应用程序(低级)可以访问内存,创建应用程序使用的内存转储而不是搜索你的变量,但我不是确保即使使用root访问也很容易。

但是任何人都可以将你的 APK 文件反编译成 smali 代码,并且很容易找到这个变量。
如果您的数据真的很敏感,那么您可以通过一些方法来保护它。

  1. 使用您的应用程序签名对其进行加密,并在您需要解密它时对其进行加密。但它仍然可以通过从应用程序签名中获取公钥等方式被黑客入侵。

  2. 根本不要将它存储在设备上(在你的应用程序中,就像全局变量一样),从服务器解析这个变量,此外使用 SSL 连接。

  3. 默认情况下,如果您不使用Content Provider. 但是通过 root 访问获取应用数据非常容易。

我更喜欢第二种变体,存储在设备上的所有内容都可以比存储在外部存储上更容易访问。

但即使您正在解析来自服务器的数据,请记住不同的网络攻击会发挥作用。

此外,如果您的数据(变量)对于所有应用程序都是相同的,并且如果被盗所有资源都可以访问,请考虑使用诸如临时令牌或其他具有到期时间的机制之类的东西。

附言

Android 运行在基于 linux 的内核上,所有安全机制都适用。因此,每个进程都有自己的内存地址空间,并且不知道系统中的任何其他进程(通常)。

于 2015-10-18T11:39:04.910 回答
1

不,无法从另一个应用程序访问全局变量。

于 2015-10-18T11:31:43.553 回答