我正在开发一个应用程序,用户可以在其中玩简单的游戏,并在每次游戏中获得积分。该应用程序由启动和结束多个活动组成,每个活动都会发出更新用户信息的请求。
使用这个前向活动模板有多个到服务器的请求,所以我在想是否可以用SharedPreferences保存这些点,并在最佳时间发出一个请求。
我担心的是:有人能修改应用程序并更改其SharedPreferences点吗?SharedPreferences是否存在任何漏洞?我害怕开始在SharedPreferences中保存用户积分,然后有人用一些漏洞来欺骗他的积分。
SharedPreferences 是否存在任何漏洞
是的,如果用户有根设备,他们可以很容易地获得共享的首选项文件并更新它。
你可以使用EncrypedSharedPreferences来存储数据,但一个好的规则是,如果你不想让某人潜在地访问他们不应该访问的东西,那么你就不应该把它保存在设备上
为了更难从设备中提取,您可以将其存储在Keystore系统中。一旦密钥在密钥库中,它们就可以用于加密操作,而密钥材料仍然是不可导出的。
有关存储在密钥库中的更多信息,请查看以下链接https://developer.android.com/training/articles/keystore