it-swarm.com.de

Fehlerbehebung für die Sicherheitsanfälligkeit in der JavaScript-Schnittstelleninjektion

Ich habe eine Warnung von Google Play Console erhalten, die mich auf diese Seite verweist, da ich in meiner App JavaScript-Schnittstelle verwendet habe und zwei Möglichkeiten zur Lösung des Problems vorschlage.

Option 1 sagt:

Stellen Sie sicher, dass der JavaScript-Schnittstelle von .__ keine Objekte hinzugefügt werden. jede WebView, die nicht vertrauenswürdige Webinhalte lädt. Sie können dies auf zwei Arten tun. Wege:

Stellen Sie sicher, dass der JavaScript-Schnittstelle niemals Objekte hinzugefügt werden über Aufrufe von addJavascriptInterface.

Entfernen Sie Objekte aus der JavaScript-Schnittstelle in shouldInterceptRequest via removeJavascriptInterface, bevor nicht vertrauenswürdiger Inhalt von .__ geladen wird. die WebView.

aber ich kann nicht verstehen, was google genau sagt:

Entfernen Sie Objekte aus der JavaScript-Schnittstelle in shouldInterceptRequest via removeJavascriptInterface, bevor nicht vertrauenswürdiger Inhalt von .__ geladen wird. die WebView

kann mir jemand mehr erklären?

5
v.d

Ich habe gerade ein Update veröffentlicht, ohne etwas Besonderes zu tun, und die Warnung ist verschwunden, ABER nicht sicher, ob es zurückkommt oder nicht

0
v.d

Sie können dieses Problem auf folgende Weise beheben:

  1. Wenn Ihre Website HTTPS unterstützt, verwenden Sie das Präfix "https: //" in der loadUrl-Methode.
  2. Sie können Android: usingCleartextTraffic in Ihrem Manifest auf "false" setzen oder eine Netzwerksicherheitskonfiguration festlegen, die den HTTP-Verkehr verhindert. Dies bedeutet auch, dass Ihre Website auf HTTPS laufen sollte.

Nun kommen Sie zu Ihrer Frage zu " Entfernen Sie Objekte aus der JavaScript-Schnittstelle in shouldInterceptRequest über removeJavascriptInterface, bevor nicht vertrauenswürdiger Inhalt vom WebView geladen wird ": Dies bedeutet, dass Ihre App JavaScriptInterface entfernen (oder deaktivieren) muss, wenn kein HTTPS vorhanden ist Die URL wird in die WebView geladen.

Nachdem Sie diese Schritte ausgeführt haben, müssen Sie APK auf der Play Console aktualisieren.

Fazit: Wenn Sie JavaScriptInterface verwenden möchten, sollten Sie HTTPS besser auf Ihrer Website verwenden. Wenn Sie HTTP verwenden, wird JavaScriptInterface von Google Play nicht zugelassen.

0
Pravesh Agrawal

Ich hatte das gleiche Problem und konnte das auch nicht herausfinden. Was funktionierte für mich, dokumentiert in Wie gehe ich vor "Beseitigung von Sicherheitsanfälligkeiten bei der JavaScript-Schnittstelleninjektion"? , war WebView.evaluateJavascript zu verwenden. Leider ist dies kein vollständiger Ersatz für alle Anwendungsfälle von JavascriptInterface, aber möglicherweise reicht es für Ihre Zwecke aus.

0
Didi