保护网络服务器上的文件并通过iPhone应用程序访问它们


Securing files on web-server and accessing them via iPhone app

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

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

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

提前感谢,费雯丽

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

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

  3. 同样,如果这些文件非常敏感或其他东西 - 当然,请使用SSL/TLS。建议无论如何使用它。

要在应用程序上显示 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;
}

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

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

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

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