我需要在需要保护的网络服务器上存储数千个PDF(加密或基于访问权限?)。
我想要通过我正在制作的iPhone应用程序访问这些文件的唯一方法,即用户名/密码保护。 (我通常使用php从应用程序与数据库/文件进行通信)
提前致谢,Leigh
答案 0 :(得分:2)
如果这些PDF文件包含敏感信息,则应使用坚不可摧的加密算法(如AES-256)对其进行加密,请使用mcrypt进行对称加密(请参阅php.net/mcrypt)。
我建议您弹出iOS的默认PDF阅读器,这是最简单的方法。
同样,如果这些文件是超级敏感的或其他东西 - 当然,使用SSL / TLS。无论如何,建议使用它。
答案 1 :(得分:1)
要在您的应用上显示PDF,您可以使用UIDocumentInteractionController
。见Document Interaction Programming Topics for 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界面控制对文件的访问。始终假设您的网址可能会受到损害。根据所需的安全级别,您可能还需要加密服务器上的文件并让应用程序对其进行解密。
出于一般安全考虑,我建议您查看WWDC 2012视频The Security Framework。或WWDC 2011视频Security Overview和Securing Application Data。另请参阅Security Starting Point for iOS文档。