為了更好的保障打開 URL 時的 App 的安全性,可在容器調用相關 URL 之前對 URL 進行判斷,如果打開的不是白名單內的 URL 則禁止調用。
建議在調用如下接口前進行 URL 判斷:
// 判斷打開的 URL 是否在白名單內
NSString *urlWhiteList = @"xxxx";
NSURL *url = [NSURL URLWithString:@"https://example.com/products/xxx"];
if (![url.host isEqualToString:urlWhiteList]) {
return;
}
// 打開在線 URL
[[MPNebulaAdapterInterface shareInstance] startH5ViewControllerWithParams:@{@"url": @"https://example.com/products/xxx"}];
// 基于 URL 創建 vc
MPH5WebViewController *vc = (MPH5WebViewController *)[[MPNebulaAdapterInterface shareInstance] createH5ViewController:@{@"url":@"https://example.com/products/xxx"}];
重要
URL 要進行精準匹配,至少要匹配到 URI 類的 scheme 和 host 信息,慎用或不用正則匹配,嚴格避免使用 contains、startsWith、endsWith、indexOf 等不精準函數。
文檔內容是否對您有幫助?