Solución para la vulnerabilidad de inyección de la interfaz JavaScript

Esta información está destinada a desarrolladores que tengan alguna aplicación con la vulnerabilidad de inyección de la interfaz JavaScript.

¿Qué va a cambiar?

Consulta el aviso en Play Console. Una vez que finalice el plazo indicado en Play Console, es posible que las aplicaciones que contengan vulnerabilidades de seguridad sin corregir se retiren de Google Play.

Acción necesaria​

  1. Inicia sesión en Play Console y ve a la sección Alertas para consultar qué aplicaciones están afectadas y las fechas límite para resolver estos problemas.
  2. Actualiza las aplicaciones afectadas y corrige la vulnerabilidad.
  3. Envía las versiones actualizadas de las aplicaciones afectadas.

Cuando vuelvas a enviar tus aplicaciones, se revisarán de nuevo. Este proceso puede tardar varias horas en completarse. Si una aplicación supera el proceso de revisión y se publica, no tendrás que hacer nada más. De lo contrario, la nueva versión de la aplicación no se publicará y recibirás una notificación por correo electrónico.

Información adicional

Los elementos WebView que incluyen objetos de la aplicación en el código JavaScript mediante addJavascriptInterface y cargan contenido web que no es de confianza son vulnerables a la inyección de la interfaz JavaScript. El contenido que no es de confianza puede ejecutar cualquier método de los objetos incluidos con la anotación @JavascriptInterface, lo que provoca que se filtren datos, que estos se dañen o que se ejecute el código de forma arbitraria.

Te recomendamos que evites esta vulnerabilidad de una de estas formas:

Opción 1: Comprobar que los elementos WebView no añaden objetos a la interfaz JavaScript

Debes verificar que no se haya añadido ningún objeto a la interfaz JavaScript de cualquier elemento WebView que cargue contenido web que no es de confianza. Puedes hacerlo de dos formas:

 

Comprueba que en ningún momento se hayan añadido objetos a la interfaz JavaScript a través de llamadas a addJavascriptInterface.

  1. Retira los objetos de la interfaz JavaScript que aparecen en shouldInterceptRequest a través de removeJavascriptInterface antes de que el elemento WebView cargue el contenido que no es de confianza.

Opción 2: Comprobar que los elementos WebView no cargan contenido web que no es de confianza

Si tu aplicación necesita incluir objetos de un elemento WebView, tendrás que comprobar que ese elemento no cargue contenido web a través de una conexión no cifrada. Puedes asignar el valor "False" a android:usesCleartextTraffic en tu archivo de manifiesto o establecer una configuración de seguridad de la red que no permita el tráfico de HTTP. También puedes comprobar que ningún elemento WebView afectado cargue URL con esquemas HTTP a través de loadUrl.


Debes asegurarte de que los elementos WebView que tengan interfaces JavaScript no carguen URL de fuentes que no son de confianza (p. ej., URL obtenidas de intents que no son de confianza).

Estamos aquí para ayudarte

Si tienes alguna pregunta técnica sobre esta vulnerabilidad, puedes publicarla en Stack Overflow con la etiqueta "android-security". Ponte en contacto con nuestro equipo de asistencia para desarrolladores si necesitas más información para resolver este problema.

¿Te ha resultado útil esta información?

¿Cómo podemos mejorar esta página?
false
Menú principal
17633396690063078722
true
Buscar en el Centro de ayuda
true
true
true
true
true
5016068
false
false