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