實現(xiàn)iOS應(yīng)用底層所有網(wǎng)絡(luò)請求攔截(如ajax請求攔截)蜻韭,包含http-dns解決方法蔑担,有效防止DNS劫持,用于分析http踪古,https請求含长,禁用/允許代理,防抓包
用到第三方庫 ZXRequestBlock
1,安裝
通過CocoaPods安裝
pod 'ZXRequestBlock'
手動導(dǎo)入
將ZXRequestBlock拖入項目中伏穆。
導(dǎo)入頭文件
#import "ZXRequestBlock.h"
使用方法
攔截全局請求
[ZXRequestBlock handleRequest:^NSURLRequest *(NSURLRequest *request) {
//攔截回調(diào)在異步線程
NSLog(@"攔截到請求-%@",request);
dispatch_async(dispatch_get_main_queue(), ^{
self.blockTv.text = [self.blockTv.text stringByAppendingString:[NSString stringWithFormat:@"攔截到請求--%@\n",request]];
});
//在這里可以將request賦值給可變的NSURLRequest拘泞,進行一些修改(例如根據(jù)request的url過濾單獨對一些請求的請求體進行修改等)然后再return,達到修改request的目的枕扫。
return request;
}];
禁止網(wǎng)絡(luò)代理抓包(開啟后將無法通過網(wǎng)絡(luò)代理抓包陪腌,通過Thor,Charles烟瞧,Burp等均無法抓取此App的包诗鸭,且在代理網(wǎng)絡(luò)下App內(nèi)部請求不受任何影響)
[ZXRequestBlock disableHttpProxy];
允許網(wǎng)絡(luò)代理抓包【默認為允許】
[ZXRequestBlock enableHttpProxy];
啟用HTTPDNS(將會直接從本地或http://119.29.29.29 進行DNS解析,是一種避免DNS劫持的措施)
[ZXRequestBlock enableHttpDns];
關(guān)閉HTTPDNS【默認為關(guān)閉】
[ZXRequestBlock disableHttpDns];
禁止所有網(wǎng)絡(luò)請求
[ZXRequestBlock cancelAllRequest];
恢復(fù)所有網(wǎng)絡(luò)請求
[ZXRequestBlock resumeAllRequest];