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);
}
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);
}
Endurecer la interfaz de JavaScript:
webView.removeJavascriptInterface("interfaceName"); // Remove if not needed
// If required, only expose minimal @JavascriptInterface methods
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
- DRD02-J. Do not allow WebView to access sensitive local resource through file scheme (CERT Secure Coding)
- DRD13. Do not provide addJavascriptInterface method access in a WebView which could contain untrusted content (CERT Secure Coding)
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