0

我正在使用 HTTPS 访问表单登录页面。通过拦截时

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

并通过以下方式提取使用的身份验证方法

NSString *authenticationMethod = [[challenge protectionSpace] authenticationMethod];

我得到以下

NSURLAuthenticationMethodServerTrust

但预期的结果应该是

NSURLAuthenticationMethodHTMLForm

这是由于使用 HTTPS 造成的吗?

4

1 回答 1

0

简短的回答:是的

身份验证方法的目的NSURLAuthenticationMethodServerTrust是客户端可以验证并信任服务器实际上是它假装的服务器。

NSURLAuthenticationMethodHTMLForm用于通过 Web 表单对用户进行身份验证。服务器发送一个 Web 表单并请求用户凭据。此身份验证不需要通过 SSL/TLS 发送。但是随后用户的凭据将以明文形式发送,从安全角度来看,这是一件坏事。

客户端身份验证也是 TLS 协议的一部分。在这种情况下,您可能会收到一个挑战,其方法是NSURLAuthenticationMethodClientCertificate.

请注意,您可能会收到多个身份验证质询。

于 2013-07-01T09:50:36.757 回答