我有一个链接将在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
我看过很多关于SSL错误的帖子和信息,我自己偶然发现了一个.
我试图通过带有GlobalSign CA BE证书的Android WebView访问网页,我收到了一个不可信的错误.
对于大多数手机来说,它可以正常处理这个,并告诉处理程序继续.
但是,有些手机最终会在webview-client中收到onReceivedError,告诉它无法与服务器建立联系.这是在经历了onReceivedSslError并继续进行之后发生的.
我搜索了描述并找到了很多涉及HttpClient的描述,并且要么安装自己的证书,要么只是欺骗它接受所有.
但是,由于我使用的是WebView,我以为我会使用WebView.setCertificate(SslCertificate crt).我搜索了这个函数的讨论,但没有找到太多/任何信息.
我拿到了据说不受信任的证书,并执行了以下代码:
try{
Certificate myCert = CertificateFactory.getInstance("X509").
generateCertificate(this.getResources().
openRawResource(R.raw.globalsign_ca_be));
X509Certificate x509 = (X509Certificate) myCert;
SslCertificate sslCert = new SslCertificate(x509);
webView.setCertificate(sslCert);
}
catch (CertificateException ex){
ex.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
使用包含以下内容的.cer文件:
----- BEGIN CERTIFICATE ----- MIIEbjCCA1agAwIBAgILBAAAAAABElatYgQwDQYJKoZIhvcNAQEFBQAwVzELMAkG A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw0wNzA1MDQxMDAw MDBaFw0xNDAxMjcxMTAwMDBaMHExCzAJBgNVBAYTAkJFMR0wGwYDVQQLExREb21h aW4gVmFsaWRhdGlvbiBDQTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEoMCYG A1UEAxMfR2xvYmFsU2lnbiBEb21haW4gVmFsaWRhdGlvbiBDQTCCASIwDQYJKoZI hvcNAQEBBQADggEPADCCAQoCggEBALSfSeaznwFVNtA2lWzLFlpscrXineL6OekK 3HNcoDt2bQUokw2lQvPoy + 7TMxoTJwrfXNFUYmqaFzbWPFiHHrJmH1VpK4lWR7TC UAzlXcH9KRtmc0P0b9EUTyptSFI69eSQP96y9BDV + fqslg0QMiPS01GnlYVQ + G8P naeITg0xm0RBjkEvbpoatLalWfFJWQl + fknTaTNLAJLFG0Igafhk39inRNGQXv05 rWt9/tWLpAFk9qe0IITMBS8n7h7VJJauhEOkPkPzO5nX + fLePRnt0GXxScpI0jh9 xkjXcmG4xsJnCthlWv1b88X9voxpz5kgtursOYDpZqjuPZ1Ge4cCAwEAAaOCAR8w ggEbMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMEsGA1UdIARE MEIwQAYJKwYBBAGgMgEKMDMwMQYIKwYBBQUHAgEWJWh0dHA6Ly93d3cuZ2xvYmFs c2lnbi5uZXQvcmVwb3NpdG9yeS8wHQYDVR0OBBYEFDYSTp5xxCZB8frxKUy/F6 RT KLbrMDMGA1UdHwQsMCowKKAmoCSGImh0dHA6Ly9jcmwuZ2xvYmFsc2lnbi5uZXQv cm9vdC5jcmwwEQYJYIZIAYb4QgEBBAQDAgIEMCAGA1UdJQQZMBcGCisGAQQBgjcK AwMGCWCGSAGG + EIEATAfBgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo // z9SzAN BgkqhkiG9w0BAQUFAAOCAQEAwyV5SvrNJm9AariUG + ag4WvSMZo/ifvFCiJ1ev27 QDScvJ6FSVl6lcwNLUQLx8sVEB7S3ON46l/1NVGmyD85kBWeXxXJt49da2OZaOFu XPydNzMKrodwSqLjqyZ9cwfk9wqqdY + m7psE0QVDdBq61MKdf7egbO0WmmdAVquD …