我有一个链接,将在 WebView
打开。问题是,在我像下面这样覆盖 onReceivedSslError
之前,它无法打开:
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
handler.proceed();
}
我收到了来自 Google Play 的安全警报:
安全警报 您的应用程序具有 WebViewClient.onReceivedSslError 处理程序的不安全实现。具体来说,该实现忽略所有 SSL 证书验证错误,使您的应用程序容易受到中间人攻击。攻击者可以更改受影响的 WebView 的内容,读取传输的数据(例如登录凭据) ,并使用 JavaScript 在应用程序中执行代码。
若要正确处理 SSL 证书验证,请在服务器提供的证书满足要求时更改代码以调用 SslErrorHandler.process () ,否则调用 SslErrorHandler.Cancer.ase ()。一个包含受影响的应用程序和类别的电子邮件警报已经发送到您的开发人员帐户地址。
请尽快处理这个漏洞并增加升级后的 APK 的版本号。有关 SSL 错误处理程序的详细信息,请参阅开发人员帮助中心中的文档。对于其他技术问题,您可以发布到 https://www.stackoverflow.com/questions,并使用标签“ android-security”和“ SslErrorHandler”如果您正在使用第三方库,这是负责,请通知第三方,并与他们一起解决这个问题。
要确认您已经正确地升级,请将更新后的版本上传到 Developer Console,并在5小时后检查。如果应用程序没有正确升级,我们将显示一个警告。
请注意,虽然这些特定的问题可能不会影响每个使用 WebView SSL 的应用程序,但是最好保持所有安全补丁的最新状态。有漏洞的应用程序使用户暴露于危险的风险中,可能被认为是危险的产品,违反了内容政策和开发者分发协议的第4.4节。
请确保所有发布的应用程序符合开发者分发协议和内容政策。如果您有问题或关注,请通过 Google Play 开发者帮助中心与我们的支持团队联系。
如果我删除 onReceivedSslError (handler.proceed())
,那么页面将不会打开。
有没有什么办法可以打开 WebView
页面,避免安全警报?