7

我知道我可以将值设置为“MODE_PRIVATE”,并且只有我的应用程序/用户 ID 才能访问它们,但是,用户有什么方法可以随时访问它们吗?那么将这些存储在共享首选项中是否“安全”,还是有更好的地方?

此外,如果我后来决定公开一些用户设置的偏好,我可以隐藏这些值吗?

谢谢你。

编辑:我也知道内部存储,但我想知道是否可以通过共享首选项实现更简单的操作。

4

3 回答 3

3

共享首选项只是存储在应用程序数据文件夹中的纯文本 XML 文件。无论如何,这不是一个安全的位置。查看这些文件并提取令牌非常容易。您仍然可以使用共享首选项,但您需要加密您存储的信息。至于“内部存储”,它们与“共享首选项”共享相同的位置,因此仍然很容易查看。

您未加密的数据对手机中运行的其他应用程序是安全的,但对恶意用户却不是。

于 2011-04-23T22:50:22.377 回答
3

即使您将访问令牌存储在设备上的安全位置,您也应该认为它可以被泄露。这就是为什么您的移动应用程序代码中不应包含客户端密码的原因。对于访问令牌,您可以尝试确保它们的安全,但不能使其 100% 安全。所以你不应该得到不必要的范围或不必要的长生命周期令牌。

附言。一般来说,移动设备使用“response_type=token(隐式授权)”,它不应该获得刷新令牌。不过,这取决于身份验证服务器的策略..

于 2011-05-01T15:59:32.400 回答
2

如果您想向用户显示一些偏好,您不必担心这些偏好会出现。我认为 shared_preferences 可能是存储这些东西的“最安全”的地方。除非用户有根手机并且他们授予恶意应用程序根权限以读取您的数据文件,否则据我所知没有什么可担心的。虽然我很期待其他人的回应。出演!

于 2011-04-23T18:19:40.607 回答