iPhone =如何检查iPhone Sqlite数据库是在外部修改的

时间:2011-04-07 08:57:35

标签: iphone sqlite ios4 encryption iphone-sdk-3.0

我正在创建一个iPhone应用程序,因为我的所有内容都存储在sqlite数据库中。

现在总是存在越狱和其他垃圾邮件活动的威胁。因此,了解Mac / Windows可以使用某些软件直接访问应用程序目录。

所以我想保持我的数据库安全以及如果任何人应该修改/替换数据库,那么当我启动我的应用程序时,我应该使用代码来通知我对数据库进行一些更改。

对于iPhone,如何进行这项工作可以提出任何建议吗?任何教程或代码?

我将使用一些加密算法将数据存储在加密格式中,但如何保护SQLITE数据库不被修改我想知道。

提前感谢。

1 个答案:

答案 0 :(得分:0)

你真的不能知道

如果你想尽最大努力,你可以做一些事情,比如计算数据库的sha512或sha256校验和,并将其存储在另一个文件中,但它需要读<每个应用程序启动关闭时,em>整个数据库,这可能不会让用户满意。这需要时间,而不仅仅是让SQLite3在读写方面发挥其魔力。

某人恶意也可以修改存储的校验和。 (如果他们可以访问程序的目标代码,那么很容易弄明白你是怎么做的,所以试图模糊假设的哈希检查程序是没有意义的。)

无论如何,这是他们的数据,对吧? :)所以如果他们想在幕后摆弄,让他们拥有它。您需要确保您在服务器上接受的任何输入都受到与接受来自Web浏览器的输入时相同的不信任。