我面临的问题是“MyViewcontroller使用带有loadHTMLString baseURL方法的NULL baseURL参数:数据定理” - 我已成功完成任务并且一切正常。
问题出在OSWAP安全扫描漏洞中,它显示上述错误。
我的代码段: -
NSString *aHtmlString = kEmptyString;
// Getting the bool from configuration plist
NSString *thePlistPath = [[NSBundle mainBundle] pathForResource:@"config" ofType:@"plist"];
NSDictionary *theURLdata = [[NSDictionary alloc] initWithContentsOfFile:thePlistPath];
is
ServerFAQAvailable = [[theURLdata valueForKey:kIsServerFAQAvailableKey] boolValue];
if (one || two || three) {
aHtmlString = [self loadFAQFor];
} else {
aHtmlString = [self loadFAQForwithout];
}
NSURL *baseURL = [NSURL fileURLWithPath:thePlistPath];
[self.faqWebView loadHTMLString:aHtmlString baseURL:baseURL];
更新
if (one || two || three) {
aHtmlString = [self loadFAQFor];
} else {
aHtmlString = [self loadFAQForwithout];
}
NSURL *baseURL = [NSURL fileURLWithPath:@"about:blank"];
[self.faqWebView loadHTMLString:aHtmlString baseURL:baseURL];
仍然显示我的扫描问题
答案 0 :(得分:5)
问题是baseURL:
参数。 html字符串不需要BaseURL,它通常用于相对链接。如果您要做的只是显示一些HTML,您确定需要吗?
标记的安全问题有意义(我的理解,大致):如果webview的baseURL设置为本地文件系统,则通过该webview加载(最终)的页面可以访问本地资源。
尝试为baseURL:
传递nil应该保持此警告。
答案 1 :(得分:1)
baseURL应该是[[NSBunld mainBunld] bunldPath],你可以尝试这样..
NSString *path = [[NSBundle mainBundle]bundlePath];
NSString *htmlPath = [[NSBundle mainBundle] pathForResource:self.htmlName ofType:@"html"];
NSString *htmlContent = [NSString stringWithContentsOfFile:htmlPath encoding:NSUTF8StringEncoding error:nil];
[self.webView loadHTMLString:htmlContent baseURL:[NSURL fileURLWithPath:path]];