首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >iOS:当我从iMazing上打开我的应用程序时,如何隐藏和保护它不被读取,以及如何保护它免受特定文件夹的复制?

iOS:当我从iMazing上打开我的应用程序时,如何隐藏和保护它不被读取,以及如何保护它免受特定文件夹的复制?
EN

Stack Overflow用户
提问于 2017-12-11 10:56:58
回答 3查看 1K关注 0票数 1

使用Swift或Obj,我已经完成了一个应用程序,并将敏感数据存储在应用程序中的一个特定文件夹中。现在,我希望用户不能看到那个文件夹,也不能在他的计算机上复制它,或者最好的,用iMazing这样的软件来隐藏它。

我试图添加一个".",这根本不是一个解决方案:如何隐藏NSDocumentsDirectory中的文件夹并通过iTunes & iCloud禁止备份

我试图将它存储在Library文件夹中,这也不是一个解决方案,因为它可以在iMazing:如何隐藏ios中在文档目录中创建的文件夹?中访问

我不想使用应用程序支持iTunes文件共享,因为我需要使用iMazing从应用程序访问documents文件夹。

是否存在智能和精减解决方案,允许将一些文件存储在iPad中,iMazing无法访问,也没有极端,因为“全部或无”应用程序支持iTunes文件共享选项?

代码语言:javascript
运行
复制
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
NSString *libraryDirectory = [paths objectAtIndex:0];
BOOL isDir = NO;
NSError *error;
if (! [[NSFileManager defaultManager] fileExistsAtPath:libraryDirectory isDirectory:&isDir] && isDir == NO) {
    [[NSFileManager defaultManager] createDirectoryAtPath:libraryDirectory withIntermediateDirectories:NO attributes:nil error:&error];
}

NSString *pathLibToCreate = [libraryDirectory stringByAppendingPathComponent:@"testDoc"];
NSString *pathDocToCreate = [[self documentsDirectory] stringByAppendingPathComponent:@"testDoc"];

if (![[NSFileManager defaultManager] fileExistsAtPath:pathLibToCreate]) {
    [[NSFileManager defaultManager] createDirectoryAtPath:pathLibToCreate withIntermediateDirectories:NO attributes:nil error:&error];
}

if ([[NSFileManager defaultManager] fileExistsAtPath:pathDocToCreate]) {
    [[NSFileManager defaultManager] removeItemAtPath:pathDocToCreate error:nil];
}
NSError *copyError = nil;
if (![[NSFileManager defaultManager] copyItemAtPath:pathLibToCreate toPath:pathDocToCreate error:&copyError]) {
    NSLog(@"Error copying files: %@", [copyError localizedDescription]);
}

提前谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-12-14 09:23:05

如果您使用“文件共享”权限为NO,如果您使用分发配置文件,您将无法在“不可思议”中查看您的文件。我想这是因为你在应用程序中使用了一个开发人员配置文件,然后你就可以查看这些文件了。

票数 1
EN

Stack Overflow用户

发布于 2017-12-11 11:12:45

我认为这是不可能的,至少如果一个用户有一个越狱设备,他可以访问系统上的所有文件。

要防止用户访问文件的内容,可以选择加密文件的内容。使用CommonCryptor框架应该是一个简单的任务。

对于加密的数据库,您可以使用SQLCipher

票数 1
EN

Stack Overflow用户

发布于 2018-03-01 10:43:32

我是iMazing的开发者之一。事实上,公认的答案是正确的: iMazing和其他类似的工具在开发过程中将允许访问应用程序的沙箱。但还有3起案件需要注意:

越狱设备

iMazing将显示所有文件,读写访问权限。

8.3之前运行iOS版本的iOS设备

这里也一样--在iOS 8.3之前,我们可以访问应用程序沙箱,也可以读写。

通过iTunes备份访问

iMazing和类似的工具都有备份浏览器,可以让用户看到应用程序沙箱。库和文档文件夹,而不是缓存或tmp。如果你真的想要安全,你需要显式的从备份中排除文件。当然,这有很大的缺点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47751393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档