Google Play 开发者管理中心拒绝了“我的应用程序更新”



我正在尝试理解并修复为什么我的应用程序被拒绝 我知道这与 SSL 有关,但我似乎找不到导致它的依赖项。我正在使用下一个设置:

  1. 安卓 N (24)
  2. 织物。
  3. 混合面板。
  4. 快布洛克斯。
  5. 碰撞剂
  6. 分析学。

任何帮助将不胜感激。

<小时 />

更新:这是来自警报部分

安全警报

您的应用程序具有不安全的 WebViewClient.onReceivedSslError 处理程序实现。具体而言,该实现会忽略所有 SSL 证书验证错误,从而使您的应用容易受到中间人攻击。攻击者可以更改受影响的 WebView 的内容、读取传输的数据(例如登录凭据)并使用 JavaScript 在应用内执行代码。要正确处理 SSL 证书验证,请将代码更改为在服务器提供的证书符合预期时调用 SslErrorHandler.proceed(),否则调用 SslErrorHandler.cancel()。包含受影响应用和课程的电子邮件提醒已发送到您的开发者帐号地址。请尽快解决此漏洞,并增加升级后的APK的版本号。有关 SSL 错误处理程序的更多信息,请参阅开发者帮助中心中的文档。对于其他技术问题,您可以发布到 https://www.stackoverflow.com/questions 并使用标签"android-security"和"SslErrorHandler"。如果您使用的是负责此问题的第三方库,请通知第三方并与他们一起解决问题。要确认您已正确升级,请将更新后的版本上传到开发者控制台,并在 5 小时后回来查看。如果应用未正确升级,我们将显示警告。请注意,虽然这些特定问题可能不会影响使用 WebView SSL 的每个应用,但最好及时了解所有安全修补程序。如果应用存在漏洞,会使用户面临泄露风险,我们可能会被视为违反了我们的恶意行为政策和开发者分发协议第 4.4 条。请确保发布的所有应用都符合开发者分发协议和开发者计划政策。如果您有任何疑问或疑虑,请通过 Google Play 开发者帮助中心联系我们的支持团队。影响 APK 版本 2。

您需要更新您的 webViewClient 处理程序,如下所述。如果您的应用程序中您没有将webview与onReceivedSslError()一起使用,请检查您使用的SDK最新版本,以根据Google的新安全政策获得更新版本。

要正确处理 SSL 证书验证,请将代码更改为在服务器提供的证书符合预期时调用 SslErrorHandler.proceed(),否则调用 SslErrorHandler.cancel()。

例如,我添加了一个警报对话框,使用户已确认,并且似乎Google不再显示警告。

    @Override
    public void onReceivedSslError(WebView view, final SslErrorHandler handler, SslError error) {
    final AlertDialog.Builder builder = new AlertDialog.Builder(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;
        }
        message += " Do you want to continue anyway?";
        builder.setTitle("SSL Certificate Error");
        builder.setMessage(message);
    builder.setPositiveButton("continue", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            handler.proceed();
        }
    });
    builder.setNegativeButton("cancel", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            handler.cancel();
        }
    });
    final AlertDialog dialog = builder.create();
    dialog.show();
}

此更改后,它不会显示警告。

问题是BackEndless。更新它,解决了问题。

相关内容

  • 没有找到相关文章

最新更新