我在硬盘驱动器上有一个文件,我想确保它只能由特定程序访问而不是
是否可以在Objective-C或C中以编程方式执行此操作?
答案 0 :(得分:2)
据我所知,使用CSBackupSetItemExcluded应该足够了 - 您需要链接到CoreServices
框架才能访问它。这需要时间机器和版本。我不知道除非用户明确做出,否则系统会自动复制文件的任何其他情况。
答案 1 :(得分:2)
绝对确定只有特定程序才能访问用户计算机上的本地文件是不可能的。这是因为如果用户足够精明,可以绕过所有可能的方法。
执行此操作的常见(但复杂)方法是使用Web服务器提供的密钥加密文件。为了获取密钥并解锁文件,程序必须联系Web服务器,进行身份验证,然后使用密钥解密文件。如果经常更改密钥并将其绑定到用户,则攻击者很难绕过它。攻击包括在文件未加密的内存中转储进程内存,然后以这种方式访问它。这很难,但可行。除了最复杂的攻击者外,这种方法可以阻止所有人许多PDF和其他文档DRM都是以这种方式实现的(亚马逊为每个设备分配密钥并安装,但其他方面也是如此)。