WKWebView的缓存策略导致安全漏洞问题
2021-07-29 本文已影响0人
王看山
安全部门扫描APP时发现,沙盒目录下,WebKit路径下有用户的手机号码和账号信息,为此翻箱倒柜没有发现有地方创建这个路径,转换下思维,是否是WKWebView自己创建的呢,查阅了大量资料发现还真是缓存策略引起的问题。
如下2张图
QQ20210729-153205.png QQ20210729-153457.png解决方法
更改WKWebView的缓存策略即可,也就一行代码的事情
config.websiteDataStore = [WKWebsiteDataStore nonPersistentDataStore];
WKWebViewConfiguration *config = [[WKWebViewConfiguration alloc] init];
config.preferences = [[WKPreferences alloc] init];
config.preferences.minimumFontSize = 10;
config.preferences.javaScriptEnabled = YES;
config.allowsInlineMediaPlayback = YES;
config.preferences.javaScriptCanOpenWindowsAutomatically = NO;
config.userContentController = userVC;
###config.websiteDataStore = [WKWebsiteDataStore nonPersistentDataStore];
[config.preferences setValue:@(YES) forKey:@"allowFileAccessFromFileURLs"];
webView = [[WKWebView alloc] initWithFrame:CGRectZero configuration:config];
webView.navigationDelegate = self;
webView.UIDelegate = self;
webView.scrollView.bounces = NO;
webView.allowsBackForwardNavigationGestures = NO;
[self.view addSubview:webView];