在我的iOS应用中,我必须加载一个静态html文件,该文件在Web视图中包含一些敏感信息。所以我把该文件放在资源文件夹中。我正在使用此代码将其加载到Web vie:
NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"index" ofType:@"html" inDirectory:@"www"]];
[webview loadRequest:[NSURLRequest requestWithURL:url]];
这项工作,但由于此HTML包含敏感信息,我们可以在越狱设备上查看资源文件夹中的所有文件,这似乎是一个很大的安全问题。
答案 0 :(得分:0)
请勿使用loadRequest
,因为它会将您限制为可显示为URL的数据(因此仅限于某些文件位置)。 UIWebView
也有其他方法:loadHTMLString
和loadData
。这些允许您加载任意数据,这意味着它可以声明为代码变量并编译到您的二进制文件中。如果这对于“敏感信息”仍然不够好,您可以在使用对称密码进行编译之前加密数据,在加载之前解密并在加载后立即删除。密码密钥显然需要成为二进制文件的一部分。您可以通过使实际密码成为某些预定义计算的临时结果(例如,最简单地说,存储在不同位置的两个其他块的异或)来进一步混淆。
这一切只是混淆。如果您的信息非常敏感,以至于有人需要对代码进行反向工程和/或进行内存转储,那么他就会这样做。您试图以与臭名昭着的无情DRM相同的方式“保护”。