美文网首页
WKWebView的TSL安全性校验

WKWebView的TSL安全性校验

作者: Yasic | 来源:发表于2019-07-08 19:43 被阅读0次

WKWebView 允许 native 介入到 HTTP 的验证流程,类似于 URLSession 一样对 Challenge 进行校验,具体代码如下

- (void)webView:(WKWebView *)webView didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition disposition, NSURLCredential * _Nullable credential))completionHandler
{
    if (![challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust]) { // 非服务端校验流程,走默认
        completionHandler(NSURLSessionAuthChallengePerformDefaultHandling, nil);
        return;
    }
    SecTrustResultType result;
    int err = SecTrustEvaluate(challenge.protectionSpace.serverTrust, &result); // 用系统证书进行服务端证书校验
    if (err) {
        // 证书校验失败
        completionHandler(NSURLSessionAuthChallengeCancelAuthenticationChallenge, nil);
        return;
    }
    if (result == kSecTrustResultUnspecified || result == kSecTrustResultProceed) {
        // 校验通过
        // kSecTrustResultProceed:验证成功,且该验证得到了用户认可(例如在弹出的是否信任的alert框中选择always trust)
        // kSecTrustResultUnspecified:验证成功,此证书也被暗中信任了,但是用户并没有显示地决定信任该证书
        NSURLCredential *credential = [[NSURLCredential alloc] initWithTrust:challenge.protectionSpace.serverTrust];
        completionHandler(NSURLSessionAuthChallengeUseCredential,credential);
        return;
    } else {
        // 证书校验失败
        completionHandler(NSURLSessionAuthChallengeCancelAuthenticationChallenge, nil);
        return;
    }
}

参考链接

iOS中HTTP/HTTPS授权访问(二)

URL加载系统之四:认证与TLS链验证

相关文章

  • WKWebView的TSL安全性校验

    WKWebView 允许 native 介入到 HTTP 的验证流程,类似于 URLSession 一样对 Cha...

  • 2022-03-30

    iOS问题记录 WKWebView加载不受信任网页链接 实现WKWebView代理方法,调过证书校验 - (voi...

  • 通过无效的HTTPS证校验

    1、wkwebview 通过无效的HTTPS证校验 实现协议方法 WKNavigationDelegate 2、...

  • WKWebView拦截scheme WKWebView打开第三方

    WKWebView出于安全性考虑, 对于打开外部链接 应用等操作进行了拦截 WKWebView打开外部应用, Sa...

  • 用Nginx实现微信小程序本地SSL请求

    更新:由于现在小程序IDE已经自带“不校验请求域名以及TSL版本”的功能,不需要在本地配置这些复杂的环境来开发了。...

  • 高并发概览

    java的高并发处理主要包括两个方面:安全性和快速响应 安全性 业务逻辑安全:幂等校验、snychronized、...

  • android APK安全性校验

    APK安全性校验 获取签名证书keystore的SHA1值和完整性校验获取的classes.dex的SHA-1哈希...

  • Android V1及V2签名原理简析

    Android为了保证系统及应用的安全性,在安装APK的时候需要校验包的完整性,同时,对于覆盖安装的场景还要校验新...

  • SpringBoot统一参数校验

    前言 在日常的开发中,参数校验是非常重要的一个环节,严格参数校验会减少很多出bug的概率,增加接口的安全性。也会减...

  • APK安全性自校验

    写在前面 进行apk校验有一种方法是获取apk的md5值,然后再从服务端获取md5与之比较,如果md5值相同就是安...

网友评论

      本文标题:WKWebView的TSL安全性校验

      本文链接:https://www.haomeiwen.com/subject/daaahctx.html