2015-10-18 216 views
1

我在我的应用程序中有Global Variable。这是我不想存储的内容,但用户应该可以在应用程序运行时访问这些内容。所有作品。全局变量安全影响

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

回答

1

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

但任何人都可以将APK文件反编译为smali代码,并轻松找到该变量。
如果你的数据非常敏感,你可以通过一些方法来保护它。

  1. 使用您的应用程序签名和您需要解密时加密它。但它仍然可以通过从应用程序签名中获取公钥等方式进行黑客攻击。

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

  3. 默认情况下,如果您不使用Content Provider,则默认情况下共享首选项不能被其他应用程序以及数据库访问。但使用root访问权限获取应用程序数据非常简单。

我宁愿第二个变体,存储在设备上的所有东西都可以比存储在外部存储上更容易访问。

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

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

P.S.

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

+0

是的所有数据已经​​加密,谢谢! – JAPK

+0

不客气。如果您有更多问题,请随时询问。更新了我的帖子。 – CROSP

1

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