Mac应用程序的文件权限

时间:2015-05-07 16:06:12

标签: objective-c macos

我正在创建一个加密文件的mac应用程序。现在,当用户准备打开文件时,我必须将其解密并将其传递给应用程序,在这种情况下,我们先说预览。

这样做的最佳方法是什么? 我应该将文件解密到某个位置并发送该位置进行预览吗?这是最好的方法,我可以对其他应用程序或进程执行任何文件权限吗?不能访问此文件?

1 个答案:

答案 0 :(得分:2)

如果您必须在文件系统上放置一个明文文件以允许其他程序读取它,则可能无法使其100%安全。如果安全很重要,我倾向于避免这种情况。可能的替代方案是:

  1. 使用其他工具接受的加密交换格式。例如,预览可以阅读encrypted PDFs。您可以使用PDF Kit或基础Quartz 2D library来编写加密的PDF。请注意,默认加密是40位;你可能希望用kCGPDFContextEncryptionKeyLength来增加它。
  2. 通过localhost将数据提供给其他程序,例如:一个浏览器。您可以将环回Web服务器嵌入到您的应用程序中,并将您的数据显示为网页。您应该disable browser caching(以防止浏览器写明文),您需要添加某种形式的身份验证(以防止攻击者查询数据)。
  3. 如果您必须在文件系统上放置明文,除了限制文件权限外,您可以在其他程序打开文件后unlink该文件。这将阻止正常的访问文件的方法,并在其他程序关闭时删除它。但是,这不会在文件取消链接之前防止文件系统访问,也不会防止绕过文件系统的攻击。<​​/ p>