juegos - Advertencia de Google Play de Android: vulnerabilidad de controlador de errores de SSL
play store juegos gratis (3)
la solución es eliminar onReceivedSslError
Uso el SDK de gorbin / ASNE en mi aplicación. Recientemente recibí un correo electrónico de Google con el siguiente tema: "Advertencia de Google Play: vulnerabilidad de controlador de errores SSL". En este correo electrónico, Google explica que mi aplicación tiene una ["implementación insegura del controlador WebViewClient.onReceivedSslError"]
y me recomendaron que ["Para manejar adecuadamente la validación de certificados SSL, cambie su código para invocar SslErrorHandler.proceed () siempre que el certificado presentado por el servidor cumpla con sus expectativas e invoque a SslErrorHandler.cancel () de lo contrario"]
aquí está mi implementación del método:
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
handler.proceed();
}
cualquier ayuda por favor?
Para gestionar adecuadamente la validación de certificados SSL, cambie su código para invocar a SslErrorHandler.proceed () siempre que el certificado presentado por el servidor cumpla con sus expectativas e invoque a SslErrorHandler.cancel () en caso contrario.
Por ejemplo, agregué un cuadro de diálogo de alerta para que el usuario haya confirmado y parece que Google ya no muestra ninguna advertencia.
@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();
}
Después de esto, los cambios no mostrarán advertencia. Enlace de referenciac
Estaba usando una versión anterior de la biblioteca backendless compilando ''com.backendless: backendless: 3.0.11'' así que actualicé a la última versión compila ''com.backendless: backendless: 3.0.24'' y se resuelve el problema.