Saltar a contenido

Index

Llamada a la API de configuración WebView peligrosa

Descripción

Lista de todos los métodos WebView utilizados en la aplicación.

Recomendación

Para mitigar el uso peligroso de las API de WebView:

Defensa principal: deshabilitar el contenido mixto:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_NEVER_ALLOW);
}
- Impide que las páginas HTTPS carguen recursos HTTP inseguros - Detiene los ataques de tipo man-in-the-middle mediante secuencias de comandos inyectadas

Restringir el acceso a los archivos:

webView.getSettings().setAllowFileAccess(false);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
    webView.getSettings().setAllowFileAccessFromFileURLs(false);
    webView.getSettings().setAllowUniversalAccessFromFileURLs(false);
}
- Bloquea la explotación del esquema file:// - Evita la filtración de bases de datos y archivos locales

Endurecer la interfaz de JavaScript:

webView.removeJavascriptInterface("interfaceName"); // Remove if not needed
// If required, only expose minimal @JavascriptInterface methods
- Evita la ejecución remota de código a través de addJavascriptInterface() - Utilice WebMessagePort o establezca una lista de permitidos de orígenes confiables si se requiere un puente JS

Protecciones adicionales:

  • Deshabilite la depuración de WebView en producción:

    WebView.setWebContentsDebuggingEnabled(false);
    
  • Habilite la navegación segura (API 26+):

WebView.enableSafeBrowsing(context);

Al deshabilitar el contenido mixto, restringir el acceso a archivos y asegurar los puentes de JavaScript, elimina los principales vectores de ataque asociados con las API peligrosas de WebView y, al mismo tiempo, mantiene segura la funcionalidad de WebView de la aplicación.

Enlaces

Estándares

  • OWASP_MASVS_L1:
    • MSTG_PLATFORM_6
    • MSTG_PLATFORM_5
  • OWASP_MASVS_L2:
    • MSTG_PLATFORM_6
    • MSTG_PLATFORM_5
  • OWASP_MASVS_v2_1:
    • MASVS_PLATFORM_2
    • MASVS_PLATFORM_3