Aller au contenu

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);
}
- Empêche les pages HTTPS de charger des ressources HTTP non sécurisées - Bloque les attaques de l'homme du milieu (man-in-the-middle) via des scripts injectés

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);
}
- Bloque l'exploitation du schéma file:// - Empêche la fuite de fichiers locaux et de bases de données

Durcir l'interface JavaScript :

webView.removeJavascriptInterface("interfaceName"); // Remove if not needed
// If required, only expose minimal @JavascriptInterface methods
- Évite l'exécution de code à distance via addJavascriptInterface() - Utilisez WebMessagePort ou des listes d'autorisation d'origines de confiance si le pont JS est requis

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

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