修复JavaScript接口注入漏洞

时间:2018-12-08 04:53:34

标签: android webview android-webview google-play-console

我从Google Play控制台收到一条警告,称我为this page,因为我在应用中使用了JavaScript接口,并提出了两种解决方案。

选项1 告知:

  

确保没有对象添加到的JavaScript接口   加载不受信任的Web内容的任何WebView。您可以一分为二   方式:

     

确保没有任何对象添加到JavaScript接口   通过调用addJavascriptInterface。

     

从shouldInterceptRequest中的JavaScript接口中删除对象   通过removeJavascriptInterface加载不信任的内容之前   WebView。

但我不明白google在上具体说了什么:

  

从shouldInterceptRequest中的JavaScript接口中删除对象   通过removeJavascriptInterface加载不信任的内容之前   WebView

有人可以告诉我更多解释吗?

3 个答案:

答案 0 :(得分:1)

您可以通过以下方式解决此问题:

  1. 如果您的网站支持HTTPS,请在loadUrl方法中使用“ https://”前缀。
  2. 您可以在清单中将android:usesCleartextTraffic设置为false,或设置禁止HTTP通信的网络安全配置。这也意味着您的网站应在HTTPS上运行。

现在,出现关于“ 在WebView加载不受信任的内容之前通过removeJavascriptInterface从shouldInterceptRequest中的JavaScript接口中删除对象”的问题:这意味着您的应用程序应删除(或禁用)JavaScriptInterface每当在WebView中加载任何非HTTPS URL时。

完成上述任何一项操作后,您需要在Play控制台上更新APK。

结论是,如果您想使用JavaScriptInterface,最好在您的网站上使用HTTPS。如果您使用HTTP,则Google Play将不允许使用JavaScriptInterface。

答案 1 :(得分:0)

我也遇到了同样的问题,也无法解决。 How to address "Remediation for JavaScript Interface Injection Vulnerability"?中记录的对我有用的是使用WebView.evaluateJavascript。 las,这并不能完全替代所有JavascriptInterface用例,但对于您的目的而言可能就足够了。

答案 2 :(得分:0)

我只是发布了一个更新而没有做任何特别的事情,但警告消失了,但不确定它是否会再次出现