AFNetworking `setSecurityPolicy:` 方法源码解析及最佳实践
关键词:AFNetworking、
AFSecurityPolicy
、SSL Pinning、HTTPS、异常抛出
一、背景与动机
在 iOS 应用开发中,网络安全始终是重中之重。AFNetworking 作为历史悠久的第三方网络库,其 AFSecurityPolicy
为开发者提供了 SSL/TLS 证书校验与证书固定(SSL Pinning) 能力。
当你为 AFHTTPSessionManager
配置安全策略时,如果疏忽了 Base URL 是否为 HTTPS,就可能让整套安全机制形同虚设。
本文聚焦于 AFNetworking 内部的以下代码片段,解析其设计思想与实际影响,并给出实战建议。
- (void)setSecurityPolicy:(AFSecurityPolicy *)securityPolicy {if (securityPolicy.SSLPinningMode != AFSSLPinningModeNone && ![self.baseURL.scheme isEqualToString:@"https"]) {NSString *pinningMode = @"Unknown Pin