1

我需要在需要保护的网络服务器上存储数千个 PDF(加密或基于访问权限?)。

我希望访问这些文件的唯一方法是通过我目前正在制作的 iPhone 应用程序,该应用程序受用户名/密码保护。(我通常使用 php 从应用程序与数据库/文件进行通信)

  1. 我应该首先使用哪些技术来保护文件?
  2. 我应该使用什么 iOS/php 代码/框架在设备上显示它们?
  3. 我是否需要通过 ssl 或其他方式加密传输?

在此先感谢,利

4

2 回答 2

2
  1. 如果这些 PDF 文件包含敏感信息,您应该使用牢不可破的加密算法(例如 AES-256)对其进行加密,使用 mcrypt 进行对称加密(请参阅php.net/mcrypt)。

  2. 我建议您弹出 iOS 的默认 PDF 阅读器,这将是最简单的方法。

  3. 同样,如果这些文件是超级敏感的或什么的 - 当然,使用 SSL/TLS。无论如何都建议使用它。

于 2013-10-10T14:54:42.567 回答
1

要在您的应用程序上显示 PDF,您可以使用UIDocumentInteractionController. 请参阅适用于 iOS 的文档交互编程主题。就像是:

NSURL *url = ... // the file URL for the PDF
UIDocumentInteractionController *controller = [UIDocumentInteractionController interactionControllerWithURL:url];
controller.delegate = self;
[controller presentPreviewAnimated:YES];

显然,您必须将您的视图控制器指定为符合UIDocumentInteractionControllerDelegate协议,并且至少要实现documentInteractionControllerViewControllerForPreview

- (UIViewController *) documentInteractionControllerViewControllerForPreview: (UIDocumentInteractionController *) controller
{
    return self;
}

您还可以在 中查看 PDF UIWebView,但文档交互控制器可能更好。

要加密传输,您应该使用 SSL(例如使用 HTTPS 而不是 HTTP)。您显然还应该确保您永远不会以明文形式发送/存储密码。

在保护服务器上的文件方面,至少要确保它们在没有经过一些授权过程的情况下是不可访问的。也就是说,不要只是将文件放在 Web 服务器上,然后在某些应用程序级别的安全性上进行回复以检索 URL。将文件存储在 Web 服务器根目录之外的其他位置,并通过您的安全 Web 界面控制对文件的访问。始终假设您的 URL 可能会受到攻击。根据所需的安全级别,您可能还希望加密服务器上的文件并让应用程序解密它们。

对于一般的安全问题,我可能建议查看 WWDC 2012 视频The Security Framework。或 WWDC 2011 视频安全概述保护应用程序数据。另请参阅iOS文档的安全起点。

于 2013-10-10T15:07:42.993 回答