SSL Warnung von Google Play

Warnung vor Google Play.

Wie kann ich die "SSL Error Handler Vulnerability" der unsicheren Implementierung des WebViewClient.onReceivedSslError Handlers behandeln?

  • So ändern Sie das MenuItem-Symbol in ActionBar programmgesteuert
  • Android: 2 oder mehr ExpandableListView innerhalb Navigation Schublade
  • Google Maps Android API v2 Berechtigungsfehler
  • Android NDK, zwei statische Bibliotheken und Linking
  • Android weißer Hintergrund, wenn die Tastatur verschwindet
  • Android-Webview-URL-Anfrage mit Abfrage-String
  • "Bitte richten Sie diese Sicherheitsanfälligkeit so schnell wie möglich ein und erhöhen Sie die Versionsnummer des aktualisierten APK. Um die SSL-Zertifikat-Validierung ordnungsgemäß zu behandeln, ändern Sie den Code, um SslErrorHandler.proceed () aufzurufen, wenn das vom Server präsentierte Zertifikat Ihren Erwartungen entspricht und SslErrorHandler aufruft .cancel () sonst. "

  • Pass Cookies von HttpURLConnection (java.net.CookieManager) zu WebView (android.webkit.CookieManager)
  • Wie kann ich ein Zertifikat mit Square OKHTTP einfügen?
  • Kompilieren Lua lib für Android - Erfolg, aber seltsame segfaults
  • Android Developer Dashboard nationale / regionale Version
  • RelativeLayout: align View zentriert horizontal oder vertikal relativ zu anderen Ansicht
  • Wie finde ich heraus, ob die Fensteranimationen in den Einstellungen aktiviert sind
  • 5 Solutions collect form web for “SSL Warnung von Google Play”

    Ich habe die gleiche Warnung heute erhalten, und es informiert mich, dass das Problem aus dem SDK von einem meiner Werbenetzwerke kommt (InMobi, ich bin wirklich erwägen, sie fallen zu lassen, da sie viele betrügerische, auto-redirect Banner haben und jetzt Dies…):

    com.inmobi.commons.analytics.iat.impl.net.AdTrackerWebViewLoader$MyWebViewClient

    Was ist die betroffene Klasse in Ihrem Fall? Wenn es eine deiner eigenen Klassen ist, musst du die technische Dokumentation lesen und deine Implementierung beheben.

    Wenn, wie ich, Sie gerade das Opfer einer Ihrer externen Bibliotheken sind, wenden Sie sich an die Entwickler, um sie zu bitten, eine feste Bibliothek zur Verfügung zu stellen (oder die Bibliothek zu löschen).

    Sie sollten zuerst überprüfen, ob Sie den WebViewClient.onReceivedSslError-Handler richtig verwenden.

    Wenn Sie die WebViewClient-Bibliothek nicht verwenden oder wenn Sie sie bereits richtig verwenden, kommt das Problem wahrscheinlich aus einer Drittanbieterbibliothek. Sie können diesen Linux-Befehl zunächst im Stammverzeichnis Ihres Projektes verwenden, um zu ermitteln, welche Bibliotheken für das Problem verantwortlich sein könnten:

     find . -name '*.jar' -exec zipgrep -i onreceivedsslerror {} \; 

    Dies listet die Dateien in allen Jar-Dateien mit dem "OnReceivedSslError" String auf.

    Danach können Sie überprüfen, ob die Google-Empfehlungen zur Behebung der Sicherheitsanfälligkeit in jeder übereinstimmenden Datei eingehalten werden.

    Wenn Sie nicht brauchen, um Dinge in onReceivedSslErr(WebView,SslErrorHandler,SslError) , entfernen Sie einfach diese Methode, um Google Play warning.Otherwise zu vermeiden. warning.Otherwise sollten Sie auch nicht direkt vorgehen. Hier ist ein Beispiel von @sakiM, Webview vermeiden Sicherheitswarnung von Google Play bei der Implementierung von onReceivedSslError

     @Override public void onReceivedSslError(WebView view, final SslErrorHandler handler, SslError error) { final AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setMessage(R.string.notification_error_ssl_cert_invalid); 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(); } 

    Wenn die Methode onReceivedSslErr von der 3. Bibliothek aufgerufen wurde, wenden Sie sich einfach an den Provider.

    Hallo, hier ist die neueste Lösung, um dein Problem zu lösen. Hoffe, es wird jemandem helfen:

    // COPY PASTE DIESEN CODE UND ENTFERNEN SIE die Methode onReceivedError ().

      /** * Notify the host application that an SSL error occurred while loading a * resource. The host application must call either handler.cancel() or * handler.proceed(). Note that the decision may be retained for use in * response to future SSL errors. The default behavior is to cancel the * load. * * @param view The WebView that is initiating the callback. * @param handler An SslErrorHandler object that will handle the user's * response. * @param error The SSL error object. */ @Override public void onReceivedSslError(WebView view, final SslErrorHandler handler, SslError error) { //final AlertDialog.Builder builder = new AlertDialog.Builder(OnlinePayment.this); String msg=""; if(error.getPrimaryError()==SslError.SSL_DATE_INVALID || error.getPrimaryError()== SslError.SSL_EXPIRED || error.getPrimaryError()== SslError.SSL_IDMISMATCH || error.getPrimaryError()== SslError.SSL_INVALID || error.getPrimaryError()== SslError.SSL_NOTYETVALID || error.getPrimaryError()==SslError.SSL_UNTRUSTED) { if(error.getPrimaryError()==SslError.SSL_DATE_INVALID){ msg="The date of the certificate is invalid"; }else if(error.getPrimaryError()==SslError.SSL_INVALID){ msg="A generic error occurred"; } else if(error.getPrimaryError()== SslError.SSL_EXPIRED){ msg="The certificate has expired"; }else if(error.getPrimaryError()== SslError.SSL_IDMISMATCH){ msg="Hostname mismatch"; } else if(error.getPrimaryError()== SslError.SSL_NOTYETVALID){ msg="The certificate is not yet valid"; } else if(error.getPrimaryError()==SslError.SSL_UNTRUSTED){ msg="The certificate authority is not trusted"; } } final AlertDialog.Builder builder = new AlertDialog.Builder(OnlinePayment.this); builder.setMessage(msg); 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(); } 

    Dies kann aufgrund der Drittanbieter-Bibliotheken in Ihrer Anwendung, die offene ssl. Es ist in meinem Fall passiert. Die Bibliothek wird in der Warnung von Google Play erwähnt. Ich habe den folgenden Grep-Befehl mit dieser Bibliothek verwendet

     $ unzip -p YourApp.apk | strings | grep "OpenSSL" 

    Dieser Befehl zeigt ein langwieriges Protokoll an, wenn es offenes ssl-Problem gibt, wegen dieser Bibliothek.

     +com.android.org.conscrypt.OpenSSLSocketImpl 7org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl OpenSSLDie DH_OpenSSL OpenSSL_add_all_ciphers OpenSSL_add_all_digests DSA_OpenSSL ECDSA_OpenSSL ECDH_OpenSSL UI_OpenSSL OpenSSL/%lx.%lx.%lx%s OpenSSL 1.0.1h 5 Jun 2014 %s(%d): OpenSSL internal error, assertion failed: %s OpenSSL DH Method OpenSSL CMAC method OpenSSL HMAC method OpenSSL EC algorithm OpenSSL RSA method OpenSSL DSA method OpenSSL ECDSA method OpenSSL PKCS#3 DH method OpenSSL ECDH method You need to read the OpenSSL FAQ, http://www.openssl.org/support/faq.html OpenSSL default OpenSSL default user interface OpenSSL 'dlfcn' shared library method SSLv2 part of OpenSSL 1.0.1h 5 Jun 2014 SSLv3 part of OpenSSL 1.0.1h 5 Jun 2014 TLSv1 part of OpenSSL 1.0.1h 5 Jun 2014 DTLSv1 part of OpenSSL 1.0.1h 5 Jun 2014 MD4 part of OpenSSL 1.0.1h 5 Jun 2014 MD5 part of OpenSSL 1.0.1h 5 Jun 2014 SHA1 part of OpenSSL 1.0.1h 5 Jun 2014 SHA-256 part of OpenSSL 1.0.1h 5 Jun 2014 SHA-512 part of OpenSSL 1.0.1h 5 Jun 2014 DES part of OpenSSL 1.0.1h 5 Jun 2014 libdes part of OpenSSL 1.0.1h 5 Jun 2014 AES part of OpenSSL 1.0.1h 5 Jun 2014 Big Number part of OpenSSL 1.0.1h 5 Jun 2014 ^RSA part of OpenSSL 1.0.1h 5 Jun 2014 Diffie-Hellman part of OpenSSL 1.0.1h 5 Jun 2014 Stack part of OpenSSL 1.0.1h 5 Jun 2014 lhash part of OpenSSL 1.0.1h 5 Jun 2014 EVP part of OpenSSL 1.0.1h 5 Jun 2014 ASN.1 part of OpenSSL 1.0.1h 5 Jun 2014 PEM part of OpenSSL 1.0.1h 5 Jun 2014 X.509 part of OpenSSL 1.0.1h 5 Jun 2014 RC2 part of OpenSSL 1.0.1h 5 Jun 2014 IDEA part of OpenSSL 1.0.1h 5 Jun 2014 CAMELLIA part of OpenSSL 1.0.1h 5 Jun 2014 EDSA part of OpenSSL 1.0.1h 5 Jun 2014 ECDSA part of OpenSSL 1.0.1h 5 Jun 2014 ECDH part of OpenSSL 1.0.1h 5 Jun 2014 RAND part of OpenSSL 1.0.1h 5 Jun 2014 CONF part of OpenSSL 1.0.1h 5 Jun 2014 CONF_def part of OpenSSL 1.0.1h 5 Jun 2014 TXT_DB part of OpenSSL 1.0.1h 5 Jun 2014 SHA part of OpenSSL 1.0.1h 5 Jun 2014 RIPE-MD160 part of OpenSSL 1.0.1h 5 Jun 2014 RC4 part of OpenSSL 1.0.1h 5 Jun 2014 :Blowfish part of OpenSSL 1.0.1h 5 Jun 2014 \CAST part of OpenSSL 1.0.1h 5 Jun 2014 OpenSSLDie DH_OpenSSL OpenSSL_add_all_ciphers OpenSSL_add_all_digests DSA_OpenSSL ECDSA_OpenSSL ECDH_OpenSSL UI_OpenSSL %s(%d): OpenSSL internal error, assertion failed: %s You need to read the OpenSSL FAQ, http://www.openssl.org/support/faq.html OpenSSL default user interface OpenSSL 'dlfcn' shared library method OpenSSL/%lx.%lx.%lx%s OpenSSL 1.0.1h 5 Jun 2014 OpenSSL DH Method OpenSSL CMAC method OpenSSL HMAC method OpenSSL EC algorithm OpenSSL RSA method OpenSSL DSA method OpenSSL ECDSA method OpenSSL PKCS#3 DH method OpenSSL ECDH method OpenSSL default SSLv2 part of OpenSSL 1.0.1h 5 Jun 2014 SSLv3 part of OpenSSL 1.0.1h 5 Jun 2014 TLSv1 part of OpenSSL 1.0.1h 5 Jun 2014 DTLSv1 part of OpenSSL 1.0.1h 5 Jun 2014 MD4 part of OpenSSL 1.0.1h 5 Jun 2014 MD5 part of OpenSSL 1.0.1h 5 Jun 2014 SHA1 part of OpenSSL 1.0.1h 5 Jun 2014 SHA-256 part of OpenSSL 1.0.1h 5 Jun 2014 SHA-512 part of OpenSSL 1.0.1h 5 Jun 2014 DES part of OpenSSL 1.0.1h 5 Jun 2014 libdes part of OpenSSL 1.0.1h 5 Jun 2014 AES part of OpenSSL 1.0.1h 5 Jun 2014 Big Number part of OpenSSL 1.0.1h 5 Jun 2014 ^RSA part of OpenSSL 1.0.1h 5 Jun 2014 Diffie-Hellman part of OpenSSL 1.0.1h 5 Jun 2014 Stack part of OpenSSL 1.0.1h 5 Jun 2014 lhash part of OpenSSL 1.0.1h 5 Jun 2014 EVP part of OpenSSL 1.0.1h 5 Jun 2014 ASN.1 part of OpenSSL 1.0.1h 5 Jun 2014 PEM part of OpenSSL 1.0.1h 5 Jun 2014 X.509 part of OpenSSL 1.0.1h 5 Jun 2014 RC2 part of OpenSSL 1.0.1h 5 Jun 2014 IDEA part of OpenSSL 1.0.1h 5 Jun 2014 DSA part of OpenSSL 1.0.1h 5 Jun 2014 ECDSA part of OpenSSL 1.0.1h 5 Jun 2014 ECDH part of OpenSSL 1.0.1h 5 Jun 2014 RAND part of OpenSSL 1.0.1h 5 Jun 2014 CONF part of OpenSSL 1.0.1h 5 Jun 2014 CONF_def part of OpenSSL 1.0.1h 5 Jun 2014 TXT_DB part of OpenSSL 1.0.1h 5 Jun 2014 SHA part of OpenSSL 1.0.1h 5 Jun 2014 RIPE-MD160 part of OpenSSL 1.0.1h 5 Jun 2014 Blowfish part of OpenSSL 1.0.1h 5 Jun 2014 \CAST part of OpenSSL 1.0.1h 5 Jun 2014 

    Versuche den gleichen Befehl, für einen anderen apk, ohne diese Bibliothek. Es wird nur zwei Zeilen wie die folgen zeigen

     +com.android.org.conscrypt.OpenSSLSocketImpl 7org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.