WebView忽略SSL证书错误检测 -SslErrorHandler.proceed方法 一、API 1. 继承关系 【1】java.lang.Object 【2】android.os.Handler 【3】android.webkit.SslErrorHandler 2. 主要方法 【1】cancel( ) 停止加载问题页面 【2】proceed( ) 忽略SSL证书错误,继续加载页面 【3】其他方法 参考链接:http://www.apihome.cn/api/android/SslErrorHandler.html 二、触发条件 1. 调用SslErrorHandler类的proceed方法 【1】对应到smali语句中的特征:Landroid/webkit/SslErrorHandler;->proceed()V 2. 方法名:onReceivedSslError 三、漏洞原理 【1】Android WebView组件加载网页发生证书认证错误时,会调用WebViewClient类的onReceivedSslError方法,如果该方法实现调用了handler.proceed()来忽略该证书错误,则会受到中间人攻击的威胁,可能导致隐私泄露 【2】漏洞代码样例 【3】参考链接:http://wolfeye.baidu.com/blog/webview-ignore-ssl-error/ 四、修复建议 【1】不调用android.webkit.SslErrorHandler的proceed方法 【2】当发生证书认证错误时,采用默认的处理方法SslErrorHandler.cancel(),停止加载问题页面