web-dev-qa-db-fra.com

Correction de la vulnérabilité d'injection dans l'interface JavaScript

J'ai reçu un avertissement de la console Google Play qui me renvoyait à cette page parce que j'avais utilisé l'interface JavaScript dans mon application et proposais deux options pour résoudre le problème.

Option 1 dit:

Assurez-vous qu'aucun objet n'a été ajouté à l'interface JavaScript de toute vue Web qui charge du contenu Web non approuvé. Vous pouvez le faire en deux façons:

Assurez-vous qu'aucun objet n'est jamais ajouté à l'interface JavaScript via des appels à addJavascriptInterface.

Supprimez les objets de l'interface JavaScript dans shouldInterceptRequest via removeJavascriptInterface avant le chargement du contenu non approuvé par la WebView.

mais je ne peux pas comprendre ce que Google dit exactement sur:

Supprimez les objets de l'interface JavaScript dans shouldInterceptRequest via removeJavascriptInterface avant le chargement du contenu non approuvé par la WebView

quelqu'un peut-il me donner plus d'explications?

5
v.d

Je viens de publier une mise à jour sans faire quelque chose de spécial et l'avertissement a disparu MAIS pas sûr que ça reviendra ou pas

0
v.d

Vous pouvez résoudre ce problème de différentes manières:

  1. Si votre site Web prend en charge HTTPS, utilisez le préfixe "https: //" dans la méthode loadUrl.
  2. Vous pouvez définir Android: usesCleartextTraffic sur false dans votre manifeste ou définir une configuration de sécurité réseau interdisant le trafic HTTP. Cela signifie également que votre site Web doit fonctionner sous HTTPS.

Maintenant, venez à votre question sur " Supprimez des objets de l'interface JavaScript dans shouldInterceptRequest via removeJavascriptInterface avant que le contenu non approuvé ne soit chargé par WebView ": Cela signifie que votre application doit supprimer (ou désactiver) JavaScriptInterface chaque fois qu'il y a un non-HTTPS L'URL est chargée dans WebView.

Après avoir effectué l'une de ces tâches, vous devez mettre à jour l'APK sur Play Console.

La conclusion est que si vous voulez utiliser JavaScriptInterface, mieux utiliser HTTPS sur votre site web. Si vous utilisez HTTP, JavaScriptInterface ne sera pas autorisé par Google Play.

0
Pravesh Agrawal

J'ai rencontré le même problème et je n'ai pas été capable de le comprendre non plus. Qu'est-ce qui a fonctionné pour moi, documenté dans Comment traiter de "Correction de la vulnérabilité d'injection dans l'interface JavaScript"? , était d'utiliser WebView.evaluateJavascript. Hélas, ce n'est pas un remplacement complet pour tous les cas d'utilisation de JavascriptInterface, mais c'est peut-être suffisant pour vos besoins.

0
Didi