Как обойти запрос HTTPS-сервера с помощью swift - PullRequest
0 голосов
/ 24 октября 2018

Я хочу обойти запрос HTTPS-сервера, используя URLSession.У меня есть объективный код c, и он работает хорошо.Но когда я конвертирую этот код в swift, он не работает.Пожалуйста, проверьте и помогите мне.что я делаю не так в моем коде?

// Objective C Code
- (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didReceiveChallenge:(NSURLAuthenticationChallenge *)challenge completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition disposition, NSURLCredential *credential))completionHandler
{
    completionHandler(NSURLSessionAuthChallengeUseCredential, [NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust]);
}

// Swift Code 
func urlSession(_ session: URLSession, task: URLSessionTask, didReceive challenge: URLAuthenticationChallenge, completionHandler: @escaping (URLSession.AuthChallengeDisposition, URLCredential?) -> Void) {
    if let aTrust = challenge.protectionSpace.serverTrust {
        completionHandler(URLSession.AuthChallengeDisposition.useCredential, URLCredential(trust: aTrust))
    }
}

1 Ответ

0 голосов
/ 10 ноября 2018

Помимо того, что это плохая идея в целом (если этот код окажется в приложении доставки, у вас будет очень серьезная ошибка безопасности), это также лишит вас возможности отправлять запросы через прокси, нарушать аутентификацию и т. Д. Пожалуйста,просто не делайте этого.

Вы можете получить бесплатные сертификаты от Let's Encrypt, так что никогда не будет веской причины использовать самозаверяющие сертификаты, если вы не делаете что-то с нестандартным оборудованием.который не подключен к Интернету, и даже если вы отключите проверку, это все равно даже удаленно не правильный способ сделать это.

Просто удалите код и установите бесплатный сертификат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...