我正在开发一些 iOS 应用程序,并且正在下载/上传非常敏感的数据。我正在使用 AFNetworking 来执行该请求,我的问题很简单:我在所有应用程序中仅获得 3 个不同的证书,我可以自定义 AFNetworking 的层以仅接受这 3 个证书吗?
这种操纵的目的是避免“中间人”攻击,从而避免在 HTTP 交换期间注入和/或检索任何附加信息。
我正在开发一些 iOS 应用程序,并且正在下载/上传非常敏感的数据。我正在使用 AFNetworking 来执行该请求,我的问题很简单:我在所有应用程序中仅获得 3 个不同的证书,我可以自定义 AFNetworking 的层以仅接受这 3 个证书吗?
这种操纵的目的是避免“中间人”攻击,从而避免在 HTTP 交换期间注入和/或检索任何附加信息。
所有 AFNetworking 操作都继承自 AFURLConnectionOperation,它定义了一个名为authenticationChallenge
. 在你的操作上设置这个块将定义 AFNetworking 如何响应 NSURLConnectionDelegate 方法connection:didReceiveAuthenticationChallenge:
。具体来说,您需要检查challenge.proposedCredential
.
如果您不想在每个操作上都设置此块,您还可以子类化您正在使用的操作类型(例如 AFJSONRequestOperation),并connection:
willSendRequestForAuthenticationChallenge:
用您想要的行为覆盖。