Cómo solucionar una vulnerabilidad de File-based XSS

Esta información está dirigida a desarrolladores cuyas apps sean vulnerables a File-based Cross-Site Scripting.

Qué sucede

Una o más de tus apps contienen una vulnerabilidad de ejecución de secuencias de comandos entre sitios basadas en archivos que debes corregir. Consulta la fecha límite para corregir esta vulnerabilidad en el aviso de Play Console. Después de esta fecha, se bloquearán las actualizaciones de las apps afectadas si no se solucionó la vulnerabilidad. La versión publicada de tu APK no cambiará.

Acción necesaria

WebViews con WebSettings que establecen setAllowFileAccessFromFileURLs o setAllowUniversalAccessFromFileURLs como valores verdaderos no deben cargar contenido web que no sea de confianza. Se incluye el contenido de dominios que no sean de confianza que se cargue mediante HTTP. Las redes o el contenido web maliciosos pueden inyectar secuencias de comandos para redireccionar una WebView a un archivo local malicioso y lanzar un ataque de Cross-Site Scripting para acceder a archivos o cookies locales privados.

Haz lo siguiente para evitar esta vulnerabilidad:

  1. Asegúrate de que la configuración de WebView no sea insegura.
  2. Asegúrate de que la WebView no cargue archivos locales ni ejecutar JavaScript.
  3. Asegúrate de que la WebView con configuración insegura no cargue contenido web que no sea de confianza.

1. Cómo asegurarse de que la configuración de WebView no sea insegura

Actualiza android:targetSdkVersion en el Manifest para que tenga como mínimo nivel 16 a fin de usar la configuración de seguridad predeterminada de WebView. De lo contrario, llama a setAllowFileAccessFromFileURLs(false) y setAllowUniversalAccessFromFileURLs(false) para garantizar que sus WebView sean seguras.

2. Cómo asegurarse de que una WebView no cargue archivos locales ni ejecute JavaScript

Llama a setAllowFileAccess(false) para evitar que una WebView con configuración insegura cargue archivos locales o a setJavaScriptEnabled(false) para evitar que una WebView con configuración insegura ejecute código JavaScript.

3. Cómo asegurarse de que una WebView con configuración insegura no cargue contenido web que no sea de confianza

Si una WebView necesita habilitar esta configuración insegura, debes asegurarte de que no cargue contenido web que no sea de confianza, lo que incluye contenido cargado mediante HTTP. Configura android:usesCleartextTraffic=false o una Configuración de seguridad de red que inhabilite el tráfico de HTTP en el Manifiesto. También puedes asegurarte de que ninguna WebView con configuración insegura cargue URL con esquemas HTTP.

Además, debes asegurarte de que las WebView con configuración insegura no carguen URL obtenidas de fuentes que no sean de confianza.

Próximos pasos

  1. Actualiza tu app por medio de los pasos destacados anteriormente.
  2. Accede a Play Console y envía la versión actualizada de tu app.
  3. Regresa después de cinco horas. Si la app no se actualizó correctamente, aparecerá un mensaje de advertencia.

Estamos aquí para ayudarte. Si tienes dudas sobre los pasos que debes realizar para resolver este problema, comunícate con nuestro equipo de asistencia para desarrolladores.