Alerta de seguridad de Android WebView SSL

Estoy construyendo una versión de prueba de una aplicación para un cliente. Parte de esta aplicación utiliza un WebView que llama a un sitio basado en SSL. A su vez, el cliente ha proporcionado un dominio de prueba donde el nombre del certificado no coincide con el FQDN. Por desgracia, no están en condiciones de aprovisionar un cert que coincida. 🙁

Estoy trabajando alrededor de este problema en la aplicación ad hoc iOS ad hoc con una línea de código (de nuevo, no para uso en la producción – sólo para fines de prueba). He buscado información similar en el sistema operativo Android, pero las soluciones que he visto aquí y en otros lugares son suficientes para hacer que mi cabeza girar gran momento por comparación!

¿Hay una manera sencilla de evitar esto? Incluso un entorno orientado al usuario escondido en algún lugar?

Claves apreciado!

2 Solutions collect form web for “Alerta de seguridad de Android WebView SSL”

Crear un WebViewClient y manejar el onReceivedSslError que se parece a esto:

public void onReceivedSslError (WebView view, SslErrorHandler handler, SslError error) 

Dentro de esta devolución de llamada sólo puede llamar a handler.proceed() y la página continuará cargando. Si no maneja esta devolución de llamada y llama al método proceed() entonces el comportamiento predeterminado será que la página no se cargue.

Respuesta actualizada según la nueva actualización de política de seguridad de Google para SSL Error Handler, consulte este artículo del Centro de asistencia de desarrolladores de Android.

Para evitar el rechazo de la aplicación en Google Play por infringir nuestra política de comportamiento malicioso.

Para manejar correctamente 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 SslErrorHandler.cancel () de lo contrario.

Por ejemplo, agrego un cuadro de diálogo de alerta para que el usuario haya confirmado y parece que Google ya no muestra 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(); 

}

  • Android Wikipedia La búsqueda de artículos no aparece correctamente en mi webview?
  • Jelly Bean WebView no funciona bien con el atributo HTML maxlength para el cuadro de texto
  • Obtener el código HTML de WebView cargado
  • Menú contextual en Android WebView
  • Android: carga el contenido de la base de datos sqlite en webview
  • Ocultar elemento HTML en Android WebView?
  • Espacios en blanco usando la vista web de android dentro de scrollview con una red móvil de jQuery
  • Proguard mess Javascript Funciones de interfaz al orientar SDK en Android Manifiesto por encima de 17
  • El video de Android no se reanuda en la vista web
  • Android WebView desplazamiento suave
  • Android WebView desplácese hacia abajo
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.