0

在 Android 上,我可以使用Context.openfileoutput. 它将保存到特定于我的应用程序的内部磁盘,其他应用程序无法访问,唯一的方法是通过连接调试器/生根设备。这不是 100% 防黑客攻击,但已经足够好了。

这是iOS上存在的东西吗?

我读了https://developer.apple.com/library/content/qa/qa1699/_index.html,但这安全吗?就像我猜它看起来像

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
                           NSString *librariesDirectory = [paths objectAtIndex:0];
                           NSLog(@"%@", librariesDirectory);
                           NSString *filePath = [NSString stringWithFormat:@"%@/%@/%@", librariesDirectory,@"Private", @"internal_image.jpg"];

这个文件会是什么

  • 其他应用无法访问
  • 不备份到 icloud
  • 应用程序很容易看到,但最终用户看不到

?

4

2 回答 2

1

如果您有敏感信息要存储,那么唯一真正安全的存储位置就是钥匙链。显然,您不想将所有数据都粘贴在密钥链中,因此只需将加密密钥存储在那里并加密您的信息并将其存储在文档目录中。如果有人访问文档目录,例如从 iCloud 备份,他们将无法在不解密文件的情况下读取文件的内容。

于 2017-01-19T03:58:12.663 回答
0

1) 使用您的数据创建一个文件

2)生成高熵加密密钥并加密文件

3) 将加密密钥保存到您的服务器

4)将加密文件保存到库文件夹并将NSURLIsExcludedFromBackupKey标志设置为true

•) 现在文件位于不会备份到 iCloud 的位置,其他应用程序无法访问,用户可以访问但已加密,因此他们无能为力。


关于 NSURLIsExcludedFromBackupKey 的好信息:https ://stackoverflow.com/questions/27216189/files-disappearing-from-nslibrarydirectory/27309392#27309392

于 2020-06-08T19:09:10.947 回答