iOS - 资源内容可供公众访问

时间:2014-11-01 11:16:39

标签: ios iphone ipad cocoa-touch uiwebview

在我的iOS应用中,我必须加载一个静态html文件,该文件在Web视图中包含一些敏感信息。所以我把该文件放在资源文件夹中。我正在使用此代码将其加载到Web vie:

NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"index" ofType:@"html" inDirectory:@"www"]];

[webview loadRequest:[NSURLRequest requestWithURL:url]];

这项工作,但由于此HTML包含敏感信息,我们可以在越狱设备上查看资源文件夹中的所有文件,这似乎是一个很大的安全问题。

  • 那么我可以存储这个html文件吗?
  • 有没有办法可以禁用资源文件夹访问。

1 个答案:

答案 0 :(得分:0)

请勿使用loadRequest,因为它会将您限制为可显示为URL的数据(因此仅限于某些文件位置)。 UIWebView也有其他方法:loadHTMLStringloadData。这些允许您加载任意数据,这意味着它可以声明为代码变量并编译到您的二进制文件中。如果这对于“敏感信息”仍然不够好,您可以在使用对称密码进行编译之前加密数据,在加载之前解密并在加载后立即删除。密码密钥显然需要成为二进制文件的一部分。您可以通过使实际密码成为某些预定义计算的临时结果(例如,最简单地说,存储在不同位置的两个其他块的异或)来进一步混淆。

这一切只是混淆。如果您的信息非常敏感,以至于有人需要对代码进行反向工程和/或进行内存转储,那么他就会这样做。您试图以与臭名昭着的无情DRM相同的方式“保护”。