Консоль разработчика Google Play отклонила мое обновление приложения

Я пытаюсь понять и исправить, Почему мое приложение отклонено, я знаю, что речь идет о SSL, но я не могу найти, какая зависимость вызывает его. Я использую следующую настройку:

  1. Android N (24)
  2. ткани.
  3. компании Mixpanel.
  4. Quickblox.
  5. Crashlytics
  6. аналитика.

любая помощь будет оценили.


обновление : Это из раздела оповещения

оповещение безопасность

ваше приложение имеет небезопасную реализацию WebViewClient.обработчик onReceivedSslError. В частности, реализация игнорирует все ошибки проверки сертификатов SSL, что делает ваше приложение уязвимым для атак типа "человек в середине". Злоумышленник может изменить содержимое WebView, прочитать переданные данные (например, учетные данные для входа) и выполнить код внутри приложения с помощью JavaScript. Чтобы правильно обработать проверку сертификата SSL, измените код для вызова SslErrorHandler.продолжить () всякий раз, когда сертификат, представленный сервером, соответствует вашим ожиданиям, и вызвать SslErrorHandler.cancel() в противном случае. На адрес учетной записи разработчика было отправлено уведомление по электронной почте, содержащее затронутые приложения и классы. Пожалуйста, устраните эту уязвимость как можно скорее и увеличьте номер версии обновленного APK. Дополнительные сведения об обработчике ошибок SSL см. В документации в справочном центре для разработчиков. Для другие технические вопросы, вы можете опубликовать вhttps://www.stackoverflow.com/questions и используйте теги "android-security" и " SslErrorHandler."Если вы используете стороннюю библиотеку, которая несет ответственность за это, пожалуйста, сообщите третьей стороне и работайте с ними для решения проблемы. Чтобы убедиться в правильности обновления, загрузите обновленную версию в консоль разработчика и проверьте ее через пять часов. Если приложение не было правильно обновлено, мы отобразим предупреждение. Обратите внимание, что хотя эти конкретные проблемы не могут повлиять на каждое приложение, использующее WebView SSL, лучше оставаться в курсе всех исправлений безопасности. Приложения с уязвимостями, которые подвергают пользователей риску компромисса, могут рассматриваться в нарушение нашей политики вредоносного поведения и раздела 4.4 соглашения о распространении разработчика. Убедитесь,что все опубликованные приложения соответствуют Соглашению о распространении и политике программ разработчика. Если у вас есть вопросы или проблемы, пожалуйста, свяжитесь с нашей службой поддержки через справочный центр Google Play Developer. Влияет на версию APK 2.

2 ответов


необходимо обновить обработчик webViewClient, как описано ниже. Если в вашем приложении вы не использовали webview с onReceivedSslError (), проверьте, что вы использовали последнюю версию SDKs, чтобы получить обновленную версию в соответствии с новой политикой безопасности Google.

чтобы правильно обработать проверку сертификата SSL, измените код для вызова SslErrorHandler.продолжить () всякий раз, когда сертификат, представленный сервером, соответствует вашим ожиданиям, и вызвать SslErrorHandler.отмена() иначе.

например, я добавляю диалоговое окно предупреждения, чтобы пользователь подтвердил и, похоже, 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 после обновления версии все исправил.