Исправление уязвимости интерфейса JavaScript - PullRequest
0 голосов
/ 08 декабря 2018

Я получил предупреждение от Google Play Console, которое ссылается на эту страницу , потому что я использовал JavaScript Interface в своем приложении и предлагал два варианта решения проблемы.

Параметр1 сообщает:

Убедитесь, что в интерфейсе JavaScript любого WebView, загружающего ненадежный веб-контент, нет объектов, добавленных.Вы можете сделать это двумя способами:

Убедитесь, что никакие объекты никогда не добавляются в интерфейс JavaScript через вызовы addJavascriptInterface.

Удалите объекты из интерфейса JavaScript в mustInterceptRequest через removeJavascriptInterface до того, как ненадежный контент станетзагружается через WebView.

, но я не могу понять, что именно Google говорит специально о:

Удалить объекты из интерфейса JavaScript в mustInterceptRequest через removeJavascriptInterface до того, как ненадежный контент станетзагружен WebView

Может кто-нибудь сказать мне больше объяснений?

Ответы [ 3 ]

0 голосов
/ 27 декабря 2018

Я просто выпускаю обновление, не делая ничего особенного, и предупреждение исчезло, НО не уверен, что оно вернется снова или нет

0 голосов
/ 29 января 2019

Вы можете решить эту проблему следующими способами:

  1. Если ваш веб-сайт поддерживает HTTPS, используйте префикс "https://" в методе loadUrl.
  2. Вы можете установить android: usingCleartextTraffic дляfalse в вашем манифесте или задайте конфигурацию сетевой безопасности, запрещающую HTTP-трафик. Это также означает, что ваш веб-сайт должен работать по протоколу HTTPS.

Теперь перейдем к вашему вопросу о " Удалить объекты изИнтерфейс JavaScript в mustInterceptRequest через removeJavascriptInterface перед загрузкой ненадежного контента WebView": это означает, что ваше приложение должно удалять (или отключать) JavaScriptInterface всякий раз, когда в WebView загружается любой не-HTTPS URL.

После выполнения любого из этих действий вам нужно обновить APK на консоли Play.

Вывод: если вы хотите использовать JavaScriptInterface, лучше использовать HTTPS на своем веб-сайте. Если вы используете HTTP, JavaScriptInterface не будет разрешенGoogle Play.

0 голосов
/ 22 декабря 2018

Я столкнулся с той же проблемой, и не смог понять это.Что сработало для меня, документировано в Как решить проблему «Исправление уязвимости интерфейса JavaScript, связанной с внедрением»? , - использовать WebView.evaluateJavascript.Увы, это не полная замена для всех случаев использования JavascriptInterface, но, возможно, этого достаточно для ваших целей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...