国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

AFNetworking2.x的SSL身份認證

2019-11-14 20:33:24
字體:
來源:轉載
供稿:網(wǎng)友

一般來講如果app用了web service , 我們需要防止數(shù)據(jù)嗅探來保證數(shù)據(jù)安全.通常的做法是用ssl來連接以防止數(shù)據(jù)抓包和嗅探

其實這么做的話還是不夠的.我們還需要防止中間人攻擊(不明白的自己去百度)。攻擊者通過偽造的ssl證書使app連接到了偽裝的假冒的服務器上,這是個嚴重的問題!

那么如何防止中間人攻擊呢?

首先web服務器必須提供一個ssl證書,需要一個 .crt 文件,然后設置app只能連接有效ssl證書的服務器。

在開始寫代碼前,先要把 .crt 文件轉成 .cer 文件,然后在加到xcode 里面

openssl x509 -in 你的證書.crt -out 你的證書.cer -outform der

如果你用的是NSURLConnection,你需要這樣檢查證書,必須添加一個 NSURLConnectionDelegate  

- (void)connection:(NSURLConnection *)connection willSendRequestForAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge

用 AFNetworking 2.x的話就簡單多了,只需要添加一個AFSecurityPolicy 和 setAFHTTPRequestOperationManager

要經常用的話,推薦寫一個方法,然后以后用就可以復制黏貼了

- (AFSecurityPolicy*)customSecurityPolicy{    /**** SSL Pinning ****/    NSString *cerPath = [[NSBundle mainBundle] pathForResource:@"你的證書" ofType:@"cer"];    NSData *certData = [NSData dataWithContentsOfFile:cerPath];    AFSecurityPolicy *securityPolicy = [[AFSecurityPolicy alloc] init];    [securityPolicy setAllowInvalidCertificates:NO];    [securityPolicy setPinnedCertificates:@[certData]];    [securityPolicy setSSLPinningMode:AFSSLPinningModeCertificate];    /**** SSL Pinning ****/    return securityPolicy;}

 

 然后在管理器里這么設置

 

 

 AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];    /**** SSL Pinning ****/    [manager setSecurityPolicy:[self customSecurityPolicy]];    /**** SSL Pinning ****/        [manager GET:@"網(wǎng)站的url" parameters:params success:^(AFHTTPRequestOperation *operation, NSDictionary* responSEObject) {        //這里是你自己的代碼了    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {        //注釋同上 }];

 

文章地址:http://m.survivalescaperooms.com/koujiaonuhan/p/ssl-pinning-with-afnetworking-2x.html

 

 

 


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 哈巴河县| 江阴市| 华池县| 灌南县| 四子王旗| 滦南县| 西峡县| 西安市| 隆子县| 宜川县| 逊克县| 兴隆县| 寿宁县| 镇安县| 新营市| 克什克腾旗| 靖江市| 安达市| 峡江县| 富民县| 平舆县| 连江县| 南昌市| 安塞县| 河间市| 于都县| 塘沽区| 云安县| 卢氏县| 五寨县| 岳池县| 怀安县| 西畴县| 敦煌市| 来安县| 绥化市| 武穴市| 台中县| 海阳市| 班戈县| 卓资县|