7

Ich versuche zu verstehen und zu beheben, warum meine App abgelehnt wird Ich weiß, dass es um SSL geht, aber ich kann nicht finden, welche Abhängigkeit es verursacht. Ich bin mit dem nächsten Setup:Google Play Developer Console abgelehnt Mein Anwendungsupdate

  1. Android N (24)
  2. Stoff.
  3. MixPanel.
  4. Quickblox.
  5. Crashlytics
  6. Analytik.

Jede Hilfe wäre willkommen.


Update: Dies ist aus der Warnungen Abschnitt

Sicherheitsalarm

Ihre Anwendung eine unsichere Implementierung des WebViewClient.onReceivedSslError Handler hat. Insbesondere ignoriert die Implementierung alle SSL-Zertifikat-Überprüfungsfehler und macht Ihre App anfällig für Man-in-the-Middle-Angriffe. Ein Angreifer könnte den Inhalt des betroffenen WebViews ändern, übertragene Daten (z. B. Anmeldeinformationen) lesen und Code in der App mithilfe von JavaScript ausführen. Um die Überprüfung des SSL-Zertifikats ordnungsgemäß durchzuführen, ändern Sie den Code so, dass SslErrorHandler.proceed() immer dann aufgerufen wird, wenn das vom Server präsentierte Zertifikat Ihren Erwartungen entspricht, und rufen Sie andernfalls SslErrorHandler.cancel() auf. Eine E-Mail-Benachrichtigung mit den betroffenen Apps und Klassen wurde an die Adresse Ihres Entwicklerkontos gesendet. Bitte beheben Sie diese Sicherheitsanfälligkeit so bald wie möglich und erhöhen Sie die Versionsnummer des aktualisierten APKs. Weitere Informationen zum SSL-Fehlerhandler finden Sie in unserer Dokumentation in der Entwickler-Hilfe. Bei anderen technischen Fragen können Sie unter https://www.stackoverflow.com/questions die Tags "android-security" und "SslErrorHandler" posten. Wenn Sie eine Drittanbieter-Bibliothek verwenden, die dafür verantwortlich ist, benachrichtigen Sie die Drittpartei und arbeiten Sie mit ihnen zusammen, um das Problem zu beheben . Um zu bestätigen, dass Sie ein korrektes Upgrade durchgeführt haben, laden Sie die aktualisierte Version in die Developer Console hoch und überprüfen Sie sie nach fünf Stunden. Wenn die App nicht korrekt aktualisiert wurde, zeigen wir eine Warnung an. Bitte beachten Sie, dass diese spezifischen Probleme zwar nicht für alle Apps gelten, die WebView SSL verwenden, es jedoch am besten ist, auf allen Sicherheitspatches auf dem neuesten Stand zu bleiben. Apps mit Sicherheitslücken, bei denen die Nutzer kompromittiert werden, können als Verstoß gegen unsere Richtlinie zu schädlichem Verhalten und Abschnitt 4.4 der Vereinbarung für den Entwicklervertrieb betrachtet werden. Stellen Sie sicher, dass alle veröffentlichten Apps mit der Entwicklervertriebsvereinbarung und den Entwicklerprogrammrichtlinien übereinstimmen. Wenn Sie Fragen oder Bedenken haben, wenden Sie sich bitte über die Google Play Developer-Hilfe an unser Support-Team. Betrifft die APK-Version 2.

+0

Erhalten Sie die Nachricht "Ihre App verwendet eine unsichere Implementierung von X509TrustManager [...]"? Wenn ja, poste ich eine Reparatur. Falls nicht, geben Sie bitte an, welche Nachricht Sie erhalten haben, weil Ihre App abgelehnt wurde. – thomaspsk

+0

Normalerweise möchten Sie Schritt für Schritt gehen, indem Sie Abhängigkeiten entfernen und dann einzeln nacheinander hinzufügen, um sicherzustellen, dass Sie die Wurzel des Problems finden. – Eenvincible

+1

werfen Sie einen Blick auf http://StackOverflow.com/Questions/36050741/ webview-avoid-security-alert-from-google-play-on-implementation-on-receiveds – StarsSky

Antwort

1

Das Problem war BackEndless nach Update-Version behoben.

+0

Kannst du es bitte genauer erklären? –

1

Sie müssen Ihren webViewClient-Handler wie unten beschrieben aktualisieren. Wenn Sie in Ihrer Anwendung nicht webview mit onReceivedSslError() verwendet haben, prüfen Sie, ob Sie die neueste SDK-Version verwendet haben, um die aktualisierte Version gemäß der neuen Sicherheitsrichtlinie von Google zu erhalten.

Um die Überprüfung des SSL-Zertifikats ordnungsgemäß durchzuführen, ändern Sie den Code so, dass SslErrorHandler.proceed() immer dann aufgerufen wird, wenn das vom Server vorgelegte Zertifikat Ihren Erwartungen entspricht, und rufen Sie andernfalls SslErrorHandler.cancel() auf.

Zum Beispiel, ich füge einen Warndialog, um Benutzer bestätigt haben und scheint Google nicht mehr Warnung angezeigt.

@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(); 
} 

Nach diesen Änderungen wird keine Warnung angezeigt.