У меня есть проблема с моей функцией оценки с Alamofire. Это отлично работает для большинства случаев, но не проходит проверку безопасности. Они используют решение MITM, они также предварительно установили сертификат по телефону, затем понюхали в Интернете, и мое решение не предупредило их о мужчинах в середине. Поэтому я бы изменил это, чтобы предупредить для пользователя, установленных CAS. Кто -нибудь может помочь мне, как это сделать? < /P>
public final class CertificatePinnerTrustEvaluator: ServerTrustEvaluating {
public init() {}
func setupCertificatePinner(host: String) -> CertificatePinner {
return CertificatePinner(host: host)
}
public func evaluate(_ trust: SecTrust, forHost host: String) throws {
let pinner = setupCertificatePinner(host: host)
if !pinner.validateCertificateTrustChain(trust) {
print("failed: invalid certificate chain!")
throw AFError.serverTrustEvaluationFailed(reason: .noCertificatesFound)
}
let certificates = pinner.makeCertChain(from: trust)
guard !certificates.isEmpty else {
throw AFError.serverTrustEvaluationFailed(reason: .noCertificatesFound)
}
try trust.af.performDefaultValidation(forHost: host)
try trust.af.performValidation(forHost: host)
let serverCertificatesData = Set(trust.af.certificateData)
let pinnedCertificatesData = Set(certificates.af.data)
let pinnedCertificatesInServerData = !serverCertificatesData.isDisjoint(with: pinnedCertificatesData)
if !pinnedCertificatesInServerData {
throw AFError.serverTrustEvaluationFailed(reason: .certificatePinningFailed(host: host,
trust: trust,
pinnedCertificates: certificates,
serverCertificates: trust.af.certificates))
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/794 ... nning-mitm
Сертификат Alamofire закрепляет MITM ⇐ IOS
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Python: пытаюсь создать приложение, которое закрепляет/добавляет папку в меню ПУСК.
Anonymous » » в форуме Python - 0 Ответы
- 23 Просмотры
-
Последнее сообщение Anonymous
-