Index
Appel à l'API des paramètres WebView dangereux
Description
Liste de toutes les méthodes WebView utilisées dans l'application.
Recommandation
Pour atténuer l'utilisation dangereuse des API WebView :
Défense principale – Désactiver le contenu mixte :
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_NEVER_ALLOW);
}
Restreindre l'accès aux fichiers :
webView.getSettings().setAllowFileAccess(false);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
webView.getSettings().setAllowFileAccessFromFileURLs(false);
webView.getSettings().setAllowUniversalAccessFromFileURLs(false);
}
Durcir l'interface JavaScript :
webView.removeJavascriptInterface("interfaceName"); // Remove if not needed
// If required, only expose minimal @JavascriptInterface methods
Protections supplémentaires :
-
Désactiver le débogage WebView en production :
WebView.setWebContentsDebuggingEnabled(false); -
Activer la navigation sécurisée (API 26+) :
WebView.enableSafeBrowsing(context);
En désactivant le contenu mixte, en restreignant l'accès aux fichiers et en sécurisant les ponts JavaScript, vous éliminez les principaux vecteurs d'attaque associés aux API WebView dangereuses tout en gardant la fonctionnalité WebView de l'application sécurisée.
Liens
- 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)
Normes
- 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