【问题标题】:SSL Error Handler WebView AndroidSSL 错误处理程序 WebView Android
【发布时间】:2018-07-27 16:24:46
【问题描述】:

当我尝试发布我的应用程序时,Google Play 控制台说我的应用程序由于 SSL 错误处理程序而存在漏洞。我按照谷歌帮助中心解决方案https://support.google.com/faqs/answer/7071387,再次尝试发布,但没有成功。我联系了 Google Play 支持,他们回复了我:

我查看了你的应用,10 版本的 PET 应用有以下类,其中包含 SslErrorHandler 的易受攻击版本:

这是我用来处理 SslError 的代码:

@Override
        public void onReceivedSslError(WebView view, final SslErrorHandler handler, SslError error) {
            final AlertDialog.Builder builder = new AlertDialog.Builder(SigpetActivity.this);
            String message = "SSL Certificate error.";
            switch (error.getPrimaryError()) {
                case SslError.SSL_UNTRUSTED:
                    message = "The certificate authority is not trusted.";
                    break;
                case SslError.SSL_EXPIRED:
                    message = "The certificate has expired.";
                    break;
                case SslError.SSL_IDMISMATCH:
                    message = "The certificate Hostname mismatch.";
                    break;
                case SslError.SSL_NOTYETVALID:
                    message = "The certificate is not yet valid.";
                    break;
            }
            builder.setMessage(message+" Clique em 'CONTINUAR' para permitir o acesso ao Sigpet");
            builder.setPositiveButton("continuar", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    handler.proceed();
                }
            });
            builder.setNegativeButton("cancelar", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    handler.cancel();
                    finish();
                }
            });
            final AlertDialog dialog = builder.create();
            dialog.show();
        }

我没有为此使用第三方库,仅使用 android webkit WebClient。

我该如何解决它以让他们允许我发布我的应用程序?

【问题讨论】:

  • 你找到解决办法了吗?
  • 实际上不,我不再在我的应用程序中打开页面并且它“解决了”。我根本无法强制应用打开 WebView 中存在 ssl 证书问题的页面,否则 Google Play 会通知我。

标签: android webview google-play android-security sslerrorhandler


【解决方案1】:

我的猜测是,Google 不喜欢你在 onClick 回调中异步调用 proceed()cancel()。相反,您应该在 onReceivedSslError() 方法本身中同步执行此操作。

【讨论】:

    猜你喜欢
    • 2017-11-06
    • 1970-01-01
    • 2016-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多