怎樣防止ios系統被抓包?
我們知道ios系統 是可以通過 [fiddler][6] ,[charles][6]等抓包工具來獲取APP發送的API,以及傳送的參數等,那么上線之后怎么防止之中情況呢?
我們都大概了解抓包的操作,需要手機與抓包工具在同一網段,然后設置代理,之后就可以進行你要抓包的操作了,那么接下來要做的事情 就相對相對簡單了,我們可以檢查自己的網絡是否處于代理網絡之下,如果這個時候處于代理網絡下就拒絕發送任何請求。
那么如何檢測是否有代理 以下提供幾個檢測代理的方法
first:
下面的代碼,如果proxy 有值,可以判斷當前wifi使用了http proxy。
#import <SystemConfiguration/CaptiveNetwork.h>- (id)fetchHttpProxy { CFDictionaryRef dicRef = CFNetworkCopySystemProxySettings(); const CFStringRef proxyCFstr = (const CFStringRef)CFDictionaryGetValue(dicRef, (const void*)kCFNetworkProxiesHTTPProxy); NSString* proxy = (__bridge NSString *)proxyCFstr; return proxy;}
second:
另外,還有一些WiFi的其他信息也可以通過代碼獲取到,比如:ssid,廣播地址、子網掩碼、端口等:
- (id)fetchSSIDInfo { NSArray *ifs = (__bridge_transfer id)CNCopySupportedInterfaces(); NSLog(@"Supported interfaces: %@", ifs); id info = nil; for (NSString *ifnam in ifs) { info = (__bridge_transfer id)CNCopyCurrentNetworkInfo((__bridge CFStringRef)ifnam); NSLog(@"%@ => %@", ifnam, info); if (info && [info count]) { break; } } return info;}
three:
下面的方法更方便的 :
- (BOOL) checkProxySetting { NSDictionary *proxySettings = (__bridge NSDictionary *)(CFNetworkCopySystemProxySettings()); NSArray *proxies = (__bridge NSArray *)(CFNetworkCopyProxiesForURL((__bridge CFURLRef _Nonnull)([NSURL URLWithString:@"https://www.baidu.com"]), (__bridge CFDictionaryRef _Nonnull)(proxySettings))); NSLog(@"/n%@",proxies); NSDictionary *settings = proxies[0]; NSLog(@"%@",[settings objectForKey:(NSString *)kCFProxyHostNameKey]); NSLog(@"%@",[settings objectForKey:(NSString *)kCFProxyPortNumberKey]); NSLog(@"%@",[settings objectForKey:(NSString *)kCFProxyTypeKey]); if ([[settings objectForKey:(NSString *)kCFProxyTypeKey] isEqualToString:@"kCFProxyTypeNone"]) { NSLog(@"沒設置代理"); return NO; } else { NSLog(@"設置了代理"); return YES; }}
以上這篇怎么防止ios系統被抓包?防止ios系統被抓包的方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。
新聞熱點
疑難解答