我有一个链接将在webview中打开.问题是它不能打开,直到我覆盖onReceivedSslError,如下所示:
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
handler.proceed();
}
Run Code Online (Sandbox Code Playgroud)
我从谷歌游戏获得安全警报说:
安全警报您的应用程序具有WebViewClient.onReceivedSslError处理程序的不安全实现.具体来说,该实现忽略了所有SSL证书验证错误,使您的应用程序容易受到中间人攻击.攻击者可以使用JavaScript更改受影响的WebView内容,读取传输的数据(例如登录凭据),以及在应用程序内部执行代码.
要正确处理SSL证书验证,只要服务器提供的证书符合您的期望,就更改代码以调用SslErrorHandler.proceed(),否则调用SslErrorHandler.cancel().包含受影响的应用和类别的电子邮件警报已发送到您的开发者帐户地址.
请尽快解决此漏洞并增加已升级APK的版本号.有关SSL错误处理程序的更多信息,请参阅开发人员帮助中心中的文档.对于其他技术问题,您可以发布到https://www.stackoverflow.com/questions并使用标签"android-security"和"SslErrorHandler."如果您使用的是负责此操作的第三方库,请通知第三方并与他们合作解决问题.
要确认您已正确升级,请将更新后的版本上传到开发者控制台,并在五小时后再回来查看.如果应用尚未正确升级,我们将显示警告.
请注意,虽然这些特定问题可能不会影响使用WebView SSL的每个应用程序,但最好保持所有安全补丁的最新状态.如果应用程序存在漏洞,使用户面临泄密风险,则可能会被视为违反内容政策和开发者分发协议第4.4节的危险产品.
请确保发布的所有应用均符合开发者分发协议和内容政策.如果您有任何疑问或疑虑,请通过Google Play开发者帮助中心与我们的支持小组联系.
如果我删除onReceivedSslError (handler.proceed()),则页面将无法打开.
无论如何我可以在webview中打开页面并避免安全警报.
android android-webview google-play android-security sslerrorhandler