精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

iOS AFNetworking框架HTTPS請求配置

移動開發 iOS
iOS在Apple公司的強制要求下,數據傳輸必須按照ATS(App Transefer Security)條款。關于AFNetworking框架傳輸HTTPS數據。

iOS AFNetworking框架HTTPS請求配置

【引自IamOkay的博客】 iOS在Apple公司的強制要求下,數據傳輸必須按照ATS(App Transefer Security)條款。關于AFNetworking框架傳輸HTTPS數據。

一.AllowsArbitraryLoads 白名單機制

NSAllowsArbitraryLoads是ATS推廣過程中的產物,當然也許可持續很久甚至永久,為了訪問HTTP服務,一般需要繞過ATS限制,需要配置info.plist文件

  1. <key>NSAppTransportSecurity</key
  2. <dict> 
  3.         <key>NSAllowsArbitraryLoads</key
  4.         <true/> 
  5.  </dict>  

這種機制實際上是允許了所有HTTP 和HTTPS的訪問,顯然,這種做法實際上很危險。設置為false就能避免繞開ATS,問題是我們真的需要完全關閉這個選項么?

比如某些文件服務器,CDN服務器配置HTTPS反而影響傳輸速度,這種情況下HTTP反而具有很高的優越性。因此,對于這類服務器的HTTP傳輸,我們其實也可以使用如下方式(設置白名單),白名單之外的必須使用HTTPS協議。

  1. <key>NSAppTransportSecurity</key
  2.     <dict> 
  3.         <key>NSExceptionDomains</key
  4.         <dict> 
  5.             <key>lib.baidu.com</key
  6.             <dict> 
  7.                 <key>NSIncludesSubdomains</key
  8.                 <true/> 
  9.             </dict> 
  10.             <key>oss.fastdfs.cn</key
  11.             <dict> 
  12.                 <key>NSIncludesSubdomains</key
  13.                 <true/> 
  14.             </dict> 
  15.            </dict> 
  16.    </dict>  

二.免證書驗證

免證書驗證,一般來說是client證書庫不會把server傳輸來的證書進行校驗。

舉個例子

  1. AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; 
  2. //允許非權威機構頒發的證書 
  3. manager.securityPolicy.allowInvalidCertificates = YES; 
  4. //也不驗證域名一致性 
  5. manager.securityPolicy.validatesDomainName = NO
  6. //關閉緩存避免干擾測試 
  7. manager.requestSerializer.cachePolicy = NSURLRequestReloadIgnoringLocalCacheData; 
  8.  
  9. [manager GET:@"https://www.baidu.com/s?wd=https" parameters:nil progress:nil  
  10. success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) { 
  11.         NSLog(@"%@",responseObject); 
  12.     } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { 
  13.         NSLog(@"%@",error); 
  14. }];  

這種方式導致我們的app容易遭到中間人攻擊,原因并不完全是我們設置了allowInvalidCertificates=YES 和validatesDomainName=NO,而是本地證書庫中沒有添加server的CA證書,只要是任意的https都能偽造為服務器。

因此,我們并不推薦使用這種方式。

三.證書驗證

3.1 加密標準分類

證書驗證分為2類,一類是單向認證,一類是雙認證。

此外,我們還需要區分證書與證書庫的區別,證書庫類型包括PKCS12,JKS,BKS等,其中,PKCS12是互聯網標準,可以跨平臺跨語言(支持Android,iOS,WP,PC,JAVA,PHP...),JKS是Java標準,只能在Java平臺和Java語言下使用,BKS是 Bouncy Castle公司的加密標準,作為Android平臺支持SSL/TLS加密套件PKCS12的補充,其加密強度很高,但是目前只用于Android平臺。證書的定義是保存在證書庫中的數字簽名信息或者單獨的證書文件,如crt,pem,cer等文件。在說加密之前,先來看看自簽名證書。

3.2 自簽名證書 vs 第三方權威機構證書

有人可能會有疑問,自簽名證書和第三方權威機構的證書的效用是否一樣?

實際上本人認為完全一樣,在互聯網中,基于B/S架構的服務中,B端通常導入了第三方權威機構的根證書(ROOT CA),實際上就是為了驗證網站的CA證書是不是安全的,并且驗證是不是由權威的安全機構簽發的證書。問題是,我們的App與Server是C/S架構,每個app最多也就只能訪問有限的幾個網址,我們自己做的app實際上本身就是信任自己的所設置的站點URL的,也就是說我們自己人相信自己人。我們的證書只是為了數據安全傳輸,不被中間人攻擊,因此完全沒必要使用(ROOT CA),但是具體來說,到目前為止也沒人試過這種方式是否可以通過審核。

我試圖找第三方CA證書機構交流,貌似他只是說這是蘋果的規定,實際上自簽名證書本質上沒什么問題,只要密鑰長度,復雜度,加密方式等達到要求即可。

因此,蘋果如果真的要求必須使用第三方CA ROOT簽名的規則,本身是不合理的。這些問題也沒法避免,不過,如果蘋果允許自簽名證書的話,設置allowInvalidCertificates=YES即可。

3.3 單向認證

需要準備的文件:服務端證書庫 , 服務端導出的證書

單向認證,實際上說的是只有Client端對Server端的證書進行驗證,Server不需要驗證Client端的證書。

自定義類:MyAFNetworking

  1. + (AFHTTPSessionManager *)manager; 
  2.     static AFHTTPSessionManager *shareInstance = nil; 
  3.     static dispatch_once_t onceToken; 
  4.     dispatch_once(&onceToken, ^{ 
  5.  
  6.         NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration]; 
  7.         shareInstance = [[AFHTTPSessionManager alloc] initWithBaseURL:[NSURL URLWithString:BaseHttpURLString] sessionConfiguration:configuration]; 
  8.         //設置請求參數的類型:JSON 
  9.         shareInstance.requestSerializer = [AFJSONRequestSerializer serializer]; 
  10.         //設置服務器返回結果的類型:JSON (AFJSONResponseSerializer,AFHTTPResponseSerializer) 
  11.         shareInstance.responseSerializer = [AFJSONResponseSerializer serializer]; 
  12.         //設置請求的超時時間 
  13.         shareInstance.requestSerializer.timeoutInterval = 20.0f; 
  14.         //設置ContentType 
  15.         shareInstance.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/html", @"text/json", @"text/plain", @"text/javascript", @"text/xml", @"image/jpeg",@"image/png", nil]; 
  16.  
  17.         // https配置 
  18.         NSString *cerPath = [[NSBundle mainBundle] pathForResource:@"你的證書名" ofType:@"cer"]; 
  19.         NSData *certData = [NSData dataWithContentsOfFile:cerPath]; 
  20.         AFSecurityPolicy *securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate withPinnedCertificates:[[NSSet alloc] initWithObjects:certData, nil]]; 
  21.  
  22.         NSSet *dataSet = [[NSSet alloc] initWithObjects:certData, nil]; //這里可以添加多個server的證書 
  23.  
  24.         // setPinnedCertificates 設置證書文件(可能不止一個證書) 
  25.         [securityPolicy setPinnedCertificates:dataSet]; 
  26.         // allowInvalidCertificates 是否允許無效證書 
  27.         [securityPolicy setAllowInvalidCertificates:NO]; 
  28.         // validatesDomainName 是否需要驗證域名 
  29.         [securityPolicy setValidatesDomainName:YES]; 
  30.  
  31.         shareInstance.securityPolicy = securityPolicy; 
  32.     }); 
  33.     return shareInstance; 

注意:以上說的證書是從服務器端到處的cer或者crt證書,這類證書是X509 Der格式的二進制編碼證書,不是X509 PAM格式的Base64編碼證書,關于自簽名證書的生成請參考如下地址

常見證書格式及相互轉換

iOS非對稱加解密

iOS 自簽名證書建立(self-signed)

3.4 雙向認證

iOS和Android一樣,客戶端證書庫類型可以是PKCS12類型的pfx證書,此類證書包含私鑰,公鑰和證書,并且由密碼。

雙向認證一般用于安全要求比較高的產品,比如金融類app,政府app等特殊行業。

需要準備的文件:服務端證書庫,服務端證書信任庫 , 服務端導出的證書,客戶端證書庫,客戶端證書

注[1]:服務端證書庫可以和服務端信任證書庫使用同一個證書庫,唯一要做的是把客戶端證書導入進行。

注[2]:客戶端證書一般使用跨平臺的PKCS12證書庫(pfx或p12),必須記住證書庫密鑰,此類證書庫同時包含私鑰,公鑰和證書。

3.4.1 信任服務器

本步驟用來校驗客戶端證書,和單向認證完全相同

自定義類:MyAFNetworking

  1. + (AFHTTPSessionManager *)manager; 
  2.     static AFHTTPSessionManager *shareInstance = nil; 
  3.     static dispatch_once_t onceToken; 
  4.     dispatch_once(&onceToken, ^{ 
  5.  
  6.         NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration]; 
  7.         shareInstance = [[AFHTTPSessionManager alloc] initWithBaseURL:[NSURL URLWithString:BaseHttpURLString] sessionConfiguration:configuration]; 
  8.         //設置請求參數的類型:JSON 
  9.         shareInstance.requestSerializer = [AFJSONRequestSerializer serializer]; 
  10.         //設置服務器返回結果的類型:JSON (AFJSONResponseSerializer,AFHTTPResponseSerializer) 
  11.         shareInstance.responseSerializer = [AFJSONResponseSerializer serializer]; 
  12.         //設置請求的超時時間 
  13.         shareInstance.requestSerializer.timeoutInterval = 20.0f; 
  14.         //設置ContentType 
  15.         shareInstance.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/html", @"text/json", @"text/plain", @"text/javascript", @"text/xml", @"image/jpeg",@"image/png", nil]; 
  16.  
  17.         // https配置 
  18.         NSString *cerPath = [[NSBundle mainBundle] pathForResource:@"你的證書名" ofType:@"cer"]; 
  19.         NSData *certData = [NSData dataWithContentsOfFile:cerPath]; 
  20.         AFSecurityPolicy *securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate withPinnedCertificates:[[NSSet alloc] initWithObjects:certData, nil]]; 
  21.  
  22.         NSSet *dataSet = [[NSSet alloc] initWithObjects:certData, nil]; //這里可以添加多個server的證書 
  23.  
  24.         // setPinnedCertificates 設置證書文件(可能不止一個證書) 
  25.         [securityPolicy setPinnedCertificates:dataSet]; 
  26.         // allowInvalidCertificates 是否允許無效證書 
  27.         [securityPolicy setAllowInvalidCertificates:NO]; 
  28.         // validatesDomainName 是否需要驗證域名 
  29.         [securityPolicy setValidatesDomainName:YES]; 
  30.  
  31.         shareInstance.securityPolicy = securityPolicy; 
  32.     }); 
  33.     return shareInstance; 

 3.4.2 提供客戶端證書和證書庫

  1. /* 
  2. ** 
  3. * 創建服務器信任客戶端的認證條件 
  4. ** 
  5. */ 
  6. +(AFHTTPSessionManager *) createCredentialsClient 
  7. __block AFHTTPSessionManager * manager = [MyAFNetworking manager]; 
  8. [manager setSessionDidReceiveAuthenticationChallengeBlock:^NSURLSessionAuthChallengeDisposition(NSURLSession*session, NSURLAuthenticationChallenge *challenge, NSURLCredential *__autoreleasing*_credential) { 
  9.     NSURLSessionAuthChallengeDisposition disposition = NSURLSessionAuthChallengePerformDefaultHandling; 
  10.     __autoreleasing NSURLCredential *credential =nil; 
  11.     if([challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust]) { 
  12.         if([manager.securityPolicy evaluateServerTrust:challenge.protectionSpace.serverTrust forDomain:challenge.protectionSpace.host]) { 
  13.             credential = [NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust]; 
  14.             if(credential) { 
  15.                 disposition =NSURLSessionAuthChallengeUseCredential; 
  16.             } else { 
  17.                 disposition =NSURLSessionAuthChallengePerformDefaultHandling; 
  18.             } 
  19.         } else { 
  20.             disposition = NSURLSessionAuthChallengeCancelAuthenticationChallenge; 
  21.         } 
  22.     } else { 
  23.         // client authentication 
  24.         SecIdentityRef identity = NULL
  25.         SecTrustRef trust = NULL
  26.         NSString *p12 = [[NSBundle mainBundle] pathForResource:@"client"ofType:@"pfx"]; 
  27.         NSFileManager *fileManager =[NSFileManager defaultManager]; 
  28.  
  29.         if(![fileManager fileExistsAtPath:p12]) 
  30.         { 
  31.             NSLog(@"client.p12:not exist"); 
  32.         } 
  33.         else 
  34.         { 
  35.             NSData *PKCS12Data = [NSData dataWithContentsOfFile:p12]; 
  36.             #加載PKCS12證書,pfx或p12 
  37.             if ([MyAFNetworking extractIdentity:&identity andTrust:&trust fromPKCS12Data:PKCS12Data]) 
  38.             { 
  39.                 SecCertificateRef certificate = NULL
  40.                 SecIdentityCopyCertificate(identity, &certificate); 
  41.                 const void*certs[] = {certificate}; 
  42.                 CFArrayRef certArray =CFArrayCreate(kCFAllocatorDefault, certs,1,NULL); 
  43.                 credential =[NSURLCredential credentialWithIdentity:identity certificates:(__bridge  NSArray*)certArray persistence:NSURLCredentialPersistencePermanent]; 
  44.                 disposition =NSURLSessionAuthChallengeUseCredential; 
  45.             } 
  46.         } 
  47.     } 
  48.     *_credential = credential; 
  49.     return disposition; 
  50. }]; 
  51.  
  52. return manager; 
  53.  
  54. /** 
  55. **加載PKCS12證書,pfx或p12 
  56. **  
  57. **/ 
  58. +(BOOL)extractIdentity:(SecIdentityRef*)outIdentity andTrust:(SecTrustRef *)outTrust fromPKCS12Data:(NSData *)inPKCS12Data { 
  59.     OSStatus securityError = errSecSuccess; 
  60.     //client certificate password 
  61.     NSDictionary*optionsDictionary = [NSDictionary dictionaryWithObject:@"你的p12密碼" 
  62.                                                                 forKey:(__bridge id)kSecImportExportPassphrase]; 
  63.  
  64.     CFArrayRef items = CFArrayCreate(NULL, 0, 0, NULL); 
  65.     securityError = SecPKCS12Import((__bridge CFDataRef)inPKCS12Data,(__bridge CFDictionaryRef)optionsDictionary,&items); 
  66.  
  67.     if(securityError == 0) { 
  68.         CFDictionaryRef myIdentityAndTrust =CFArrayGetValueAtIndex(items,0); 
  69.         const void*tempIdentity =NULL
  70.         tempIdentity= CFDictionaryGetValue (myIdentityAndTrust,kSecImportItemIdentity); 
  71.         *outIdentity = (SecIdentityRef)tempIdentity; 
  72.         const void*tempTrust =NULL
  73.         tempTrust = CFDictionaryGetValue(myIdentityAndTrust,kSecImportItemTrust); 
  74.         *outTrust = (SecTrustRef)tempTrust; 
  75.     } else { 
  76.         NSLog(@"Failedwith error code %d",(int)securityError); 
  77.         return NO
  78.     } 
  79.     return YES; 

 通過以上方式,我們便能實現雙向認證了 

  1. AFHTTPSessionManager * manager = [MyAFNetworking createCredentialsClient];  
責任編輯:龐桂玉 來源: IamOkay的博客
相關推薦

2018-05-03 19:14:23

iOS開發框架API

2014-07-18 10:00:41

AFNetworkin

2024-03-26 12:08:20

加密NginxHTTP

2022-10-13 13:21:58

系統httpsCharles

2021-11-09 09:43:52

鴻蒙HarmonyOS應用

2015-08-27 09:46:09

swiftAFNetworkin

2015-05-18 09:44:34

2016-03-18 09:36:13

ios基礎框架

2018-07-30 13:19:05

網站HTTPHTTPS

2012-06-01 11:10:07

iOS基本框架圖示

2025-07-14 01:30:00

2011-08-18 11:10:49

Core Plot框架IOS開發

2021-06-02 08:37:33

HTTPSPCI DSS合安全檢測

2023-07-10 09:48:30

Nginx反向代理

2020-04-09 14:02:33

NginxHttps前端

2021-07-28 23:32:09

Nginx服務器Https

2015-05-05 10:32:15

iOS-MVVM框架

2015-10-22 10:32:52

AFNetworkin遷移

2021-05-06 16:21:55

鴻蒙HarmonyOS應用開發

2022-04-07 09:18:18

JettyServlet服務器
點贊
收藏

51CTO技術棧公眾號

欧美另类极品videosbestfree| 色就色 综合激情| 亚洲专区在线视频| 日韩免费一二三区| 日本天堂一区| 欧美日韩国产影片| 国产一区二区三区乱码| 久久久资源网| 国产呦萝稀缺另类资源| 亚洲视频你懂的| 91精品免费视频| 国产精品成人aaaa在线| 欧美亚洲在线日韩| 欧美va在线播放| 美女喷白浆视频| 四虎影视成人| 国产精品麻豆网站| 国偷自产av一区二区三区小尤奈| 色婷婷久久综合中文久久蜜桃av| 欧美日韩mv| 亚洲天堂视频在线观看| 日韩a一级欧美一级| 色吧亚洲日本| 一区二区三区精品在线| 欧洲国产精品| 色哟哟国产精品色哟哟| 久久国产人妖系列| 欧美在线观看网址综合| 激情综合五月网| 欧美激情国产在线| 亚洲人成自拍网站| 国产精品扒开腿做爽爽爽a片唱戏 亚洲av成人精品一区二区三区 | 日韩一区二区三区视频| 凹凸日日摸日日碰夜夜爽1| 色爱综合区网| 亚洲女人****多毛耸耸8| 日韩欧美三级一区二区| 能在线看的av| 91免费看视频| 精品免费国产| 日本免费网站在线观看| 国产成人一区在线| 91免费观看| 91成人国产综合久久精品| 日韩av中文字幕一区二区| 欧美激情免费看| 三级在线观看免费大全| 久久要要av| 丝袜情趣国产精品| 992kp快乐看片永久免费网址| av男人的天堂在线观看| 一个色妞综合视频在线观看| 91xxx视频| 黄色av免费在线| 中文字幕一区免费在线观看| 亚洲视频在线二区| 麻豆传媒视频在线观看| 中文字幕一区在线观看| 一区二区不卡在线观看| 毛片在线视频| 一区二区三区中文字幕精品精品| 亚洲天堂第一区| 日韩特级毛片| 五月天亚洲精品| 无罩大乳的熟妇正在播放| 青青青免费在线视频| 欧美性xxxx| 国产免费黄视频| **欧美日韩在线观看| 在线观看欧美黄色| 色天使在线观看| 亚洲精品在线国产| 亚洲第一视频在线观看| 在线精品一区二区三区| 国产精品一区二区av日韩在线| 国产一区二区三区在线免费观看| 老司机精品免费视频| 亚洲激情久久| 国内精品小视频在线观看| 欧美一区二区激情视频| 免费成人在线影院| 亚洲综合一区二区不卡| 欧美视频一二区| 国产日韩精品视频一区| 在线国产99| av剧情在线观看| 欧美三级日韩三级| 折磨小男生性器羞耻的故事| 亚洲区小说区| 精品国产一区二区三区在线观看 | 97电影在线观看| 亚洲视频你懂的| 欧美亚洲国产成人| 久久天天久久| 亚洲国产精品热久久| 亚洲欧洲久久久| 欧美日本一区| 国产精品久久久久免费a∨| www.国产欧美| 国产片一区二区| 成人一区二区av| 日韩欧美一区二区三区免费观看| 欧美夫妻性生活| 一二三不卡视频| 91精品福利| 国产成人精品免费视频| 精品国产无码一区二区| 欧美激情自拍偷拍| 国产高清av在线播放| 欧美日韩免费电影| 日韩电视剧免费观看网站| 日本黄色录像视频| 日韩中文字幕区一区有砖一区 | 亚洲人成网www| 美日韩精品视频免费看| 中文字幕av无码一区二区三区| 成人午夜免费av| 中文字幕在线亚洲精品| 日韩久久一区二区三区| 亚洲第一区中文99精品| 欧美日韩在线观看成人| 麻豆国产精品777777在线| 欧美精品一区二区三区在线四季| 日本性爱视频在线观看| 欧美欧美午夜aⅴ在线观看| 波多野结衣福利| 亚洲精品美女| 成人自拍爱视频| 99福利在线| 欧美军同video69gay| 亚洲日本精品视频| 噜噜噜在线观看免费视频日韩| 国产精品.com| 日本高清在线观看视频| 3atv在线一区二区三区| 久久婷婷五月综合| 久久在线精品| 免费国产一区| 成人福利视频| 国产视频精品xxxx| 国产一区二区三区影院| 成人精品在线视频观看| 无码人妻精品一区二区蜜桃百度| 欧美激情三级| 蜜臀久久99精品久久久久久宅男 | 中文有码久久| 久久福利在线| 日韩在线观看视频免费| 少妇又紧又色又爽又刺激视频| 国产三级三级三级精品8ⅰ区| 欧美韩国日本在线| 亚洲精品蜜桃乱晃| 日韩免费av在线| 国产最新视频在线观看| 在线亚洲高清视频| 五月激情四射婷婷| 紧缚奴在线一区二区三区| 中文字幕一区二区三区5566| 白嫩亚洲一区二区三区| 久久中文字幕视频| 亚洲第一黄色片| 精品av在线播放| 亚洲一区二区三区蜜桃| 日本免费新一区视频| 亚洲天堂电影网| 精品一区二区三区四区五区| 久久国产精品99国产精| 韩国av永久免费| 精品久久久久久国产| 男生草女生视频| 美女看a上一区| 成年在线观看视频| 日韩理论电影中文字幕| 国产精品福利无圣光在线一区| 99青草视频在线播放视| 欧美一级理论片| 国产无套在线观看| 久久精品夜色噜噜亚洲a∨| 亚洲xxx在线观看| 影音先锋中文字幕一区二区| 久久免费99精品久久久久久| 国产韩日精品| 欧美成人黄色小视频| 香蕉久久国产av一区二区| 在线免费一区三区| 欧美 日韩 国产 一区二区三区| 成人一区二区视频| 国产视频一区二区视频| 亚洲不卡av不卡一区二区| 国产偷国产偷亚洲高清97cao| 亚洲电影有码| 欧美激情亚洲自拍| 成年人在线看| 亚洲第一色在线| 亚洲资源在线播放| 亚洲超碰精品一区二区| 男人天堂资源网| 99国产精品一区| 天天操精品视频| 六月婷婷一区| 青青青青草视频| 99久久久久久中文字幕一区| 精品不卡在线| 成人精品视频在线观看| 欧美一区二区三区…… | 亚洲少妇屁股交4| jizz欧美性20| 国产 日韩 欧美大片| 超碰av在线免费观看| 精品9999| 国产欧美自拍视频| 成人av国产| 欧美极品jizzhd欧美| 亚洲高清在线一区| 国产精品亚洲美女av网站| 深夜成人在线| 久久久欧美一区二区| 麻豆传媒免费在线观看| 亚洲桃花岛网站| 无码国产精品一区二区免费16| 欧美一区欧美二区| 一级特黄aaa大片在线观看| 色综合网站在线| www.国产成人| 亚洲成人免费视| 精品99久久久久成人网站免费 | 亚洲欧美日韩另类精品一区二区三区 | 国内精品久久久久国产盗摄免费观看完整版| 欧美午夜欧美| 天堂一区二区三区四区| 国产精品日韩欧美一区二区三区| 白嫩亚洲一区二区三区| 国产深夜精品福利| 国产亚洲精彩久久| 国产精品无码专区在线观看| 三级成人黄色影院| 日韩美女视频中文字幕| 欧美18—19sex性hd| 国产91|九色| 中文字幕成在线观看| 77777少妇光屁股久久一区| 波多野结衣中文在线| 欧美福利视频在线观看| 一色桃子av在线| 久久91亚洲精品中文字幕| а√资源新版在线天堂| 欧美精品一区三区| 成人超碰在线| 97视频在线观看成人| 理论不卡电影大全神| 欧美一级电影在线| 三上悠亚一区二区| 国产精品第一页在线| 成人免费网站www网站高清| 国产精品色婷婷视频| 六九午夜精品视频| 91久久久亚洲精品| 欧洲大片精品免费永久看nba| av资源一区二区| 国产精品极品国产中出| 久久av一区二区| 国产欧美一区二区精品久久久| 亚州欧美一区三区三区在线| 久久在线视频免费观看| 国产香蕉一区二区三区| 国产在线日韩| 又粗又黑又大的吊av| 天堂久久久久va久久久久| 超碰在线公开97| 国产乱码精品1区2区3区| av免费观看不卡| 久久蜜桃一区二区| 美女100%露胸无遮挡| 亚洲欧美色综合| 日本黄色片视频| 91国产免费看| 国产www免费观看| 亚洲黄页视频免费观看| 成人免费视频| 欧美乱妇高清无乱码| 天堂√8在线中文| 国产日韩欧美电影在线观看| 亚洲国产精品免费视频| 久久久久资源| 亚洲天天综合| aa在线免费观看| 国产中文一区二区三区| 在线免费看黄色片| 欧美国产日韩在线观看| 青青草激情视频| 色婷婷精品大在线视频| av免费观看在线| 亚洲视频在线看| 视频在线这里都是精品| 国产精品成人免费电影| 一区二区三区四区高清视频| 日本不卡免费新一二三区| 一区二区三区在线电影| 欧美精品第三页| 丰满亚洲少妇av| 老司机精品免费视频| 精品国产1区2区| 99在线精品视频免费观看20| 亚洲精品自拍第一页| a级毛片免费观看在线| 日韩免费在线看| 大奶在线精品| 7777在线视频| 久久精品久久综合| 97人妻精品一区二区三区免 | 青青国产在线观看| 日韩欧美三级在线| 在线中文资源天堂| 欧美在线视频观看免费网站| 日本亚州欧洲精品不卡| 亚洲午夜精品福利| 久久都是精品| 无码人妻aⅴ一区二区三区| 亚洲男人的天堂在线观看| 亚洲精品毛片一区二区三区| 亚洲黄色av女优在线观看 | 四虎国产精品免费观看| 天天摸天天碰天天添| 成人免费福利片| 国产va在线播放| 91精品国产91久久久久久最新毛片| 国产九九在线| 日本久久中文字幕| 嫩草国产精品入口| 成人免费视频91| 成人晚上爱看视频| 玖玖爱免费视频| 日韩一级欧美一级| 黄色免费在线观看网站| 国产日韩综合一区二区性色av| 日韩成人三级| 鲁一鲁一鲁一鲁一av| 国产欧美精品区一区二区三区| 麻豆精品久久久久久久99蜜桃| 亚洲精品在线观| av2020不卡| 国产亚洲自拍偷拍| 99国产精品视频免费观看一公开| 国产亚洲精品成人a| 一区二区在线看| 蜜桃av中文字幕| 国模吧一区二区三区| 加勒比久久高清| 黄在线观看网站| 久久久91精品国产一区二区三区| 天堂在线免费观看视频| 亚洲男人av电影| 粉嫩一区二区三区| 在线码字幕一区| 国产一区二区三区高清播放| 久久久久久久久毛片| 欧美大黄免费观看| 日本免费一区二区六区| 农村寡妇一区二区三区| 日韩 欧美一区二区三区| 日本免费www| 欧美一区二区三区视频在线| 性直播体位视频在线观看| 国产精品加勒比| 久久这里只有| 永久免费看片直接| 精品免费99久久| 小视频免费在线观看| 亚洲激情电影在线| 国产乱子伦一区二区三区国色天香| 久久午夜无码鲁丝片| 日韩成人高清在线| 91伊人久久| 国产一区二区片| 久久综合精品国产一区二区三区| 波多野结衣高清在线| 久久深夜福利免费观看| 国产精品视频3p| 日本中文字幕高清| 亚洲免费观看高清| 三级黄视频在线观看| 国产精品中文字幕久久久| 国产精品99一区二区| 成人乱码一区二区三区av| 欧美一区二区视频网站| 麻豆国产在线| 欧美日韩视频免费在线观看| 成人晚上爱看视频| 在线视频播放大全| 国内自拍欧美激情| 四虎成人av| 国产男女猛烈无遮挡a片漫画| 欧美日韩国产综合一区二区| 黄色漫画在线免费看| 亚洲一区二区四区| 97精品超碰一区二区三区| 国产精品欧美久久久久天天影视| 97超级碰碰人国产在线观看| 天堂网在线观看国产精品| 国产精品无码网站|