iOS 判断用户是否开启了代理

判断用户是否开启了代理,防止抓包

- (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;
    }
posted @ 2022-08-17 11:06  qqcc1388  阅读(2114)  评论(0)    收藏  举报