判断用户是否开启了代理,防止抓包
- (BOOL)isOpenTheProxy
{
#ifdef DEBUG
return NO;
#else
NSDictionary *proxySettings = (__bridge NSDictionary *)(CFNetworkCopySystemProxySettings());
NSArray *proxies = (__bridge NSArray *)(CFNetworkCopyProxiesForURL((__bridge CFURLRef _Nonnull)([NSURL URLWithString:@"http://www.baidu.com"]), (__bridge CFDictionaryRef _Nonnull)(proxySettings)));
NSDictionary *settings = proxies[0];
if ([[settings objectForKey:(NSString *)kCFProxyTypeKey] isEqualToString:@"kCFProxyTypeNone"]) {
return NO;
} else {
return YES;
}
#endif
}
然后在网络请求基类每次请求去获取一次该方法,如果查询用户使用了代理,则主动断开请求,可以从基本层面上给app添加一层防护
if ([self isOpenTheProxy]) {
[self showAlertViewWithMessage:@"SSL证书验证失败,请检查网络是否安全"];
return 0;
}