iphone - 当手机丢失时,任何人都可以从 iPhone 中的应用程序访问我的 sqlite3 数据库吗

标签 iphone ios ios4 osx-snow-leopard

我创建了一个应用程序,我在其中从网站获取个人信息并将其存储在我的 sqlite3 本地数据库中。经过身份验证的用户只有在成功登录后才能看到他们的信息。然后我根据需要显示它。我不希望这些信息在手机丢失时被任何人窃取。

我已经实现了这样一个功能,即当应用程序从后台转到前台时,它会请求在应用程序中硬编码的 pin。

我的问题:

  1. 当手机丢失时,任何人都可以访问我的 sqlite3 本地数据库吗?

  2. 有没有办法加密数据库并在需要时解密?

  3. 我将如何确保数据库不易受攻击。

谢谢你

最佳答案

试试这个..

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *dbPath = [documentsDirectory stringByAppendingPathComponent:@"myDatadase.sqlite"];
if (sqlite3_open_v2([dbPath UTF8String], &database, SQLITE_OPEN_CREATE|SQLITE_OPEN_READWRITE|SQLITE_OPEN_FILEPROTECTION_COMPLETEUNTILFIRSTUSERAUTHENTICATION, NULL) == SQLITE_OK){
    NSLog(@"db opened securely");
}else{
    NSLog(@"db not opened");
}

关于iphone - 当手机丢失时,任何人都可以从 iPhone 中的应用程序访问我的 sqlite3 数据库吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8814133/

相关文章:

iphone - 如何检测哪个 UILabel 被点击了?

iphone - 如何在 Interface Builder 中将导航栏添加到 UITableViewController?

iphone - 我可以创建一个包含类、xib 和图像的框架并将其用作另一个项目的框架吗?

iphone - 如何使用正则表达式在语句周围加上引号

objective-c - 在哪里可以找到 iPad 示例代码

iphone - 如何删除自定义导航栏图像?

objective-c - 音频完成后,访问 navigationController 会产生 EXC_BAD_ACCESS

iphone - AppStore,我有一个应用正在审核中,我可以将其由自动发布改为手动发布吗?

ios - 如何创建 NSArray 的副本并在不影响原始 NSArray 的情况下更改它?

ios - 无法在 IOS 中创建 plist 文件