Database 安卓如何保护您的数据库?

Database 安卓如何保护您的数据库?,database,android,Database,Android,你知道用Android保护数据库的方法吗 我想实施以下措施,但不知道是否可行: 将对数据库的访问权限限制为仅由应用程序所有者(创建并提供数据库的应用程序所有者)访问 在DB owner应用程序的使用会话期间,限制或拒绝所有其他应用程序对数据库的访问 有什么方法可以对数据库进行密码保护吗 使用sqlite3进行的测试表明,您可以在其他应用程序使用数据库时更改数据库。因此,我假设某些外部应用程序可能会损坏或使用您的数据,这是不好的 另外,您建议如何处理在同时使用数据库期间可能发生的数据库异常: 向用

你知道用Android保护数据库的方法吗

我想实施以下措施,但不知道是否可行:

  • 将对数据库的访问权限限制为仅由应用程序所有者(创建并提供数据库的应用程序所有者)访问
  • 在DB owner应用程序的使用会话期间,限制或拒绝所有其他应用程序对数据库的访问
  • 有什么方法可以对数据库进行密码保护吗
  • 使用sqlite3进行的测试表明,您可以在其他应用程序使用数据库时更改数据库。因此,我假设某些外部应用程序可能会损坏或使用您的数据,这是不好的

    另外,您建议如何处理在同时使用数据库期间可能发生的数据库异常:

  • 向用户显示消息并关闭
  • 向用户显示消息并继续工作
  • 就在附近
  • 在所有这些发生之后,您打算下次如何启动应用程序


    谢谢

    安卓系统会自动执行您列表中的选项(1)。手机/系统上的每个应用程序都有自己的用户ID,任何应用程序都无法访问任何其他应用程序的数据库文件

    如果您确实希望共享数据(使用访问控制),则可以创建内容提供商,然后其他应用程序可以使用该提供商:

    上述规则有几个例外情况:

  • 在SDK中的emulator中,adb shell允许您完全访问模拟手机的文件系统。但在实时android手机中,情况并非如此
  • 在已“根化”的手机中,任何获得根权限的应用程序都可以访问任何其他应用程序(以及任何其他应用程序)的db文件-这是根化手机的成本/风险,也是设备所有者的责任

  • 基本上,你不需要担心。Android通常会为您防止这些问题。

    您实际上应该非常担心。 很容易得到你的数据库,甚至代码,而无需根电话。 下面是一个如何执行此操作的示例:

  • 下载ASTRO文件管理器
  • 使用该选项将应用程序备份到SD卡中
  • 将备份的文件传输到您的计算机中
  • 使用Apk_OneClick工具(互联网搜索)反编译应用程序包
  • 现在你拥有了一切,代码,数据库,图像,xml文件,一切

    所以我可以告诉你们,你们可以让其他人在几分钟内编写代码和数据库。
    要保护应用程序,请使用ProGuard,并对数据库使用某种类型的加密。就我个人而言,我对每个字段数据进行加密,并在运行时对其进行解密,使用简单的XOR加密,不会对性能造成太大的损失。

    我想说,开发人员有责任不在手机上存储敏感数据。不要认为你应该手动加密你在手机上保存的所有内容。查看下面的答案(user632079)。别担心@kellogs:我把这个问题解释为“你如何保护android应用程序数据库中的用户数据不受其他应用程序的影响”(正确答案是“你不需要,android系统会处理它”);user632079似乎将其视为“如何保护应用程序的私有代码和非用户数据不受用户影响”——这是一个根本不同的问题,是的,加密是解决这类问题的一种选择。