android - 全局变量安全隐患

标签 android security variables android-security

我的应用程序中有全局变量。这是我不想存储的内容,但用户应该能够在应用程序运行时访问它。所有作品。

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

最佳答案

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

但是任何人都可以将你的APK文件反编译成smali代码,并轻松找到这个变量。
如果您的数据确实敏感,可以采取一些方法来保护它。

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

  2. 根本不要将其存储在设备上(像全局变量一样在应用程序内部),从服务器解析此变量,此外还使用 SSL 连接。

  3. 默认情况下,如果您不使用Content Provider,其他应用程序以及数据库将无法访问共享首选项。但通过 root 访问权限获取应用程序数据非常容易。

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

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

此外,如果所有应用程序的数据(变量)都相同,并且如果被盗,所有资源都可以访问,请考虑使用临时 token 或其他具有过期时间的机制。

附注

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

关于android - 全局变量安全隐患,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33197390/

相关文章:

java - 如何将位图保存在内存中

android - Calabash Android 脚本停止

javascript - 防止来自带有查询表单的静态网站(即 Jekyll 网站)的 JSONP 请求的跨站请求伪造

php - 在 PHP 中使用适当的身份验证安全登录

facebook - 如何通过 Facebook 的 Javascript SDK 安全地授权用户

android - Fragment 和 FragmentActivity 有什么区别?

javascript - JS : orientationchange before?

c - C 中的变量名

php - 通过 ajax 和 jquery 将变量发送到 php

variables - LabVIEW变量查找和替换