我知道我可以将值设置为'MODE_PRIVATE',只有我的应用程序/ userId才能访问它们,但是,用户有什么方法可以随时访问它们吗?那么将它们存储在共享首选项中是否“安全”,还是有更好的地方?
此外,如果我后来决定公开某些用户设置的偏好设置,我是否可以隐藏这些值?
谢谢。
编辑:我也了解内部存储,但我想知道我是否可以使用共享首选项实现更简单的操作。
答案 0 :(得分:3)
共享首选项只是存储在应用程序数据文件夹中的纯文本XML文件。无论如何,这不是一个安全的位置。查看这些文件并提取令牌非常容易。您仍然可以使用共享首选项,但需要加密要存储的信息。对于“内部存储”,它们与“共享首选项”共享相同的位置,因此它们仍然易于查看。
您的未加密数据对于手机中运行的其他应用程序是安全的,但不是来自恶意用户。
答案 1 :(得分:2)
如果您想向用户显示某些偏好设置,则无需担心这些偏好会出现。我认为shared_preferences可能是存储这些东西的“最安全”的地方。除非用户拥有root电话并且他们给予恶意应用root权限才能阅读您的数据文件,所以就我所知,没有什么可担心的。虽然我期待其他人的回应。出演!
答案 2 :(得分:2)
即使您将访问令牌存储在设备上的安全位置,您也应该认为它可以显示出来。这就是为什么你的移动应用程序代码中不应该有客户机密。 对于访问令牌,您可以尝试保证它们的安全,但您无法使其100%安全。因此,您不应该获得不必要的范围或不必要的长寿命令牌。
PS。 通常,移动设备使用“response_type = token(隐式授权)”并且它不应该获得刷新令牌。这取决于身份验证服务器的策略..