【问题标题】:How to protect/detect database restore on Android device?如何保护/检测 Android 设备上的数据库恢复?
【发布时间】:2013-07-01 08:47:15
【问题描述】:

我有一个适用于 Android 的应用程序,它以一种常见的方式将数据保存到 sqlite 数据库。当用户使用应用程序时,数据会发生变化等。到目前为止没有问题......

但当用户使用一些备份软件(如钛备份或其他),对应用程序进行备份时,他可以将数据恢复到旧状态。我需要一种方法来保护应用程序免受此影响或检测恢复并处理它。

简单的工作流程:

  1. 安装APP
  2. 配合APP工作
  3. 到达APP数据库的STATE1
  4. 备份APP(任何备份/恢复应用,设备都可以root)
  5. 配合APP工作
  6. 到达APP数据库的STATE2
  7. 将 APP(或仅数据)恢复到 STATE1 - 这是我在下次执行 APP 时需要拒绝或检测的点。

到目前为止,我使用了访问时间检测和比较,但通过不同的设备和 ROM 似乎真的不可靠。

谢谢。

【问题讨论】:

    标签: android database security


    【解决方案1】:

    为此,您需要在设备之外保存一些状态,或者至少在data 目录之外。最简单的方法可能是将数据库文件的指纹保存在外部存储(SD 卡)上的某个“隐藏”目录中。或者,如果您的应用具有 Web 登录等功能,请为每个用户存储指纹。

    在任何情况下,用户都可以完全控制设备,因此您无法 100% 阻止此操作。您的应用需要优雅地处理数据库中的任何更改,或者在检测到致命的不一致时直接失败。

    【讨论】:

    • 谢谢,我是这样看的... SD卡上的安全指纹文件也可以备份,但要多一步保护。
    猜你喜欢
    • 1970-01-01
    • 2011-07-14
    • 1970-01-01
    • 2011-04-04
    • 2013-09-28
    • 1970-01-01
    • 2013-07-26
    • 2014-04-29
    • 1970-01-01
    相关资源
    最近更新 更多