ios - 我是否需要做任何额外的工作来保护我的 iOS 应用程序中的 sqlite 数据库?

标签 ios sqlite

我正在使用 core data 将数据存储在 sqlite 数据库中。我是否需要采取任何额外措施来保护它们?

此外,我在应用商店中发现了一些 sqlite 浏览器应用程序。我的疑问是,这些应用程序是否能够访问我的应用程序中使用的 sqlite 数据库,或者这些应用程序如何工作/对开发人员有用。

提前致谢。

最佳答案

这取决于您想保护数据库的程度。如果您不考虑越狱设备,将您的数据库存储在其他人无法访问的应用程序的私有(private)文件夹中就足够了。

然而,越狱设备的用户可以读取整个文件系统,包括您的 sqlite 数据库。如果您还必须考虑这种风险,您可以按照@Invincible 的建议加密数据库。这里的问题是您仍然需要将密码存储在应用程序的某个位置,通过一些努力可以对其进行逆向工程和提取。您可以而且应该使用一些混淆方法来存储您的密码,但这并不能为您提供 100% 的安全性。

“开放”(越狱)平台的安全问题是您无法访问攻击者无法访问的任何信息。但是,您可以通过应用不同的混淆和加密技术使攻击者的处境变得更加困难。你应该投入多少努力?您应该考虑以下因素:

  • 丢失敏感数据的风险<=> 攻击者的 yield
  • 你准备投入的努力 <=> 攻击者会投入多少努力

关于ios - 我是否需要做任何额外的工作来保护我的 iOS 应用程序中的 sqlite 数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9937760/

相关文章:

ios - segue 后在 View 上保留标签栏?

ios - TVOS Focus 在 collectionview cell 和另一个 cell 之间

ios - 获取默认日历时出错,仅第一次出现,但之后工作正常

java - 从 SQLiteDatabase.execSQL 获取生成的查询

javascript - 将 JSON 数据插入 Sqlite/webSQL 数据库

php - 如何在 PHP 中将 MySQL 数据库转换为 SQLite?

ios - 确定纬度/经度点是否在 Mapview 中的 MKPolygon 中?

iphone - UIRefreshControl 背景色

android - 每次运行后如何清除数据库中的数据?

c# - 使用 Dapper.Contrib 插入和多映射