1. 问题说明

如果程序调用了 android/webkit/SslErrorHandler 类的 proceed 方法,就可能使得 WebView 忽略校验证书的步骤,这很容易受到中间人攻击,可能导致隐私数据泄漏。

2. 测试步骤

在代码中搜 “onReceivedSslError”,看是否调用了 handle.process() 方法(在 webview 组件代码中测试),如果调用了则存在问题。也可以在 Jadx 中全局搜索。
WebView 不校验证书检测 - 图1

3. 修复建议

  1. 不要调用 android.webkit.SslErrorHandler 的 proceed方法;
  2. 当发生证书认证错误时,采用默认的处理方法 SslErrorHandler.cancel(),停止加载问题页面。