【问题标题】:Is Shared Preferences safe for private datas?Shared Preferences 对私人数据安全吗?
【发布时间】:2016-05-01 21:25:24
【问题描述】:

我正在将我的数据库/用户中的数据保存到 SharedPreferences 中的一个 gson 格式的 ArrayList 中。现在我的问题:

将这些数据(或一般数据)保存到 Sharedpreferences 中是否安全。用户是否能够读出这些 gson Arraylists?可能来自 SD 卡、文件夹或其他地方。

谢谢!

【问题讨论】:

  • 没有。这甚至不是一个好方法。最好使用加密数据库。
  • 不,因为它不安全或不,因为无法获取这些数据。
  • 用一个简单的root设备,你可以读取所有共享的偏好.....

标签: android sharedpreferences


【解决方案1】:

SharedPreferences 只是一个位于手机私人内存中的文件。所以用户无法访问它,但root可以。 Root 可以做任何事情,现在许多用户都拥有 root 权限。你不应该在那里存储脆弱的数据

Android SharedPreference security

【讨论】:

    【解决方案2】:

    它们以 xml 文件的形式存储在您的应用程序目录中,其权限仅允许您的应用程序访问它们。但是在有根设备上,它们很容易访问。如果您关心安全性,那么您可以使用加密,这些项目可能对您有用:

    https://github.com/rtoshiro/SecureSharedPreferences

    https://github.com/sveinungkb/encrypted-userprefs

    这些项目仍然没有给你 100% 的保证,黑客可能会反编译你的 apk 并找到用于加密共享偏好的密钥。因此,如果您的数据仅在短时间内使用,请记住在用户完成使用后将其从您的设备中删除。例如,您可以将数据保存在服务器上并仅在需要时下载,仅在需要时在本地缓存很短的时间。

    【讨论】:

      【解决方案3】:

      您可以读取所有共享偏好数据

      SharedPreferences 类提供了一个通用框架,允许 您可以保存和检索原始数据的持久键值对 类型。

      要查看商店中的信息,您需要从数据中了解重要信息。这将使阅读信息变得超级容易。但是,尽管保留一小部分数据很简单,但保留和浏览大型结构化数据却很困难,因为您需要为每个数据定义键,此外,您无法真正在数据内部进行搜索,除非您有一定的命名秘密的概念。

      请阅读Android SharedPreference security

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-08-27
        • 2017-06-24
        • 1970-01-01
        • 2010-10-26
        • 2020-10-07
        • 2012-11-21
        • 2018-08-11
        • 2019-08-11
        相关资源
        最近更新 更多