溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何防止ios系統(tǒng)被抓包

發(fā)布時(shí)間:2021-05-24 09:26:06 來源:億速云 閱讀:165 作者:小新 欄目:移動(dòng)開發(fā)

這篇文章給大家分享的是有關(guān)如何防止ios系統(tǒng)被抓包的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。

怎樣防止ios系統(tǒng)被抓包?

我們知道ios系統(tǒng) 是可以通過 [fiddler][6] ,[charles][6]等抓包工具來獲取APP發(fā)送的API,以及傳送的參數(shù)等,那么上線之后怎么防止之中情況呢?

我們都大概了解抓包的操作,需要手機(jī)與抓包工具在同一網(wǎng)段,然后設(shè)置代理,之后就可以進(jìn)行你要抓包的操作了,那么接下來要做的事情 就相對相對簡單了,我們可以檢查自己的網(wǎng)絡(luò)是否處于代理網(wǎng)絡(luò)之下,如果這個(gè)時(shí)候處于代理網(wǎng)絡(luò)下就拒絕發(fā)送任何請求。

那么如何檢測是否有代理 以下提供幾個(gè)檢測代理的方法

first:

下面的代碼,如果proxy 有值,可以判斷當(dāng)前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,廣播地址、子網(wǎng)掩碼、端口等:

- (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(@"沒設(shè)置代理");
  return NO;
 }
 else
 {
  NSLog(@"設(shè)置了代理");
  return YES;
 }
}

感謝各位的閱讀!關(guān)于“如何防止ios系統(tǒng)被抓包”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

ios
AI