Предупреждение Google Play: ваше приложение содержит уязвимость межплатформенного сценария

Доброго времени суток всем,

Я получил электронное письмо от Google Play относительно уязвимости скриптов между приложениями в одном или нескольких моих опубликованных приложениях. Я использую WebView в своих приложениях, поэтому они говорят, что мое приложение содержит проблему межпрограммного скриптинга webView, которая может разрешить вредоносные приложения для кражи пользовательских файлов cookie и других данных. И они дают то, что я собираюсь предпринять, то есть

Action required

Please follow the steps below to fix the issue with your apps (listed at the end of this email). You can refer to the notice in your Play Console for the deadline to fix this problem. After this deadline, updates to affected apps will be blocked if the vulnerability is still present. Your published APK version will remain unaffected. Additional details

WebViews that enable JavaScript and load data read from untrusted Intents can be tricked by malicious apps into executing JavaScript code in an unsafe context. You should prevent this vulnerability in one of the following ways:

Option 1: Ensure that affected activities are not exported

Find any Activities with affected WebViews. If these Activities do not need to take Intents from other apps you can set android:exported=false for the Activities in your Manifest. This ensures that malicious apps cannot send harmful inputs to any WebViews in these Activities.

Option 2: Protect WebViews in exported activities

If you want to set an Activity with an affected WebView as exported then we recommend that you make the following changes:

Update your targetSdkVersion

Ensure that your targetSdkVersion meets Google Play's target API level requirement. Apps with a targetSdkVersion of 16 or lower evaluate JavaScript URLs passed to loadUrl in the currently loaded page context. Targeting SDK version 16 or lower and calling loadUrl using unsanitized input from untrusted Intents lets attackers execute harmful scripts in the affected WebView.

Protect calls to evaluateJavascript

Ensure that parameters to evaluateJavascript are always trusted. Calling evaluateJavascript using unsanitized input from untrusted Intents lets attackers execute harmful scripts in the affected WebView.

Prevent unsafe file loads

Ensure that affected WebViews cannot load the cookie database. WebViews that load unsanitized file:// URLs from untrusted Intents can be attacked by malicious apps in the following way. A malicious web page can write script tags into the cookies database and then a malicious app can send an Intent with a file:// URL pointing to your WebView cookies database. The malicious script will execute if the cookies database is loaded in a WebView and can steal session information.

You can ensure that affected WebViews cannot load the WebView cookies database in two ways. You can either disable all file access or you can verify that any loaded file:// URLs point to safe files. Note that an attacker can use a symbolic link to trick checks on the URL path. To prevent such an attack, be sure to check the canonical path of any untrusted file:// URL before loading instead of just checking the URL path.

Итак, мой вопрос

  1. Если я внесу изменения, упомянутые в электронном письме, как это повлияет на мои приложения?

  2. Будет ли отключена какая-либо функция моего приложения?

Вы решили это? У меня тоже получилось так же.

user3219477 30.05.2019 17:32
1
1
6 130
6

Ответы 6

Simplw Answer Нет В вашем приложении не будет никаких изменений. по сути

Что такое межпрограммный скриптинг (CAS) ??

Межпрограммное создание сценариев (CAS) - это уязвимость, затрагивающая приложения, которые не проверяют ввод исчерпывающим образом. CAS позволяет злоумышленнику вставлять данные, которые изменяют поведение конкретного приложения. Это позволяет извлекать данные из систем пользователей. Злоумышленники могут получить полные привилегии атакованного приложения при использовании уязвимостей CAS; атака до некоторой степени не зависит от базовой операционной системы и архитектуры оборудования.

Так что просто внесите изменения в свое веб-приложение ..

Перейдите по этому URL-адресу для получения дополнительной информации

https://www.acunetix.com/websitesecurity/cross-site-scripting/

Ответ в том, что это зависит от того, для чего вы используете WebViews. Если вы просто используете WebView как удобный способ отображения пользовательского интерфейса из HTML, жестко закодированного в вашем приложении или загруженного с вашего веб-сервера, у вас не будет проблем. Просто следуйте варианту 1, и тогда другие приложения не смогут атаковать ваши веб-представления с помощью CSS.

Если ваше приложение спроектировано так, чтобы веб-просмотры использовались другими приложениями, ответ будет намного сложнее. Вам нужно будет предоставить гораздо больше информации о том, для чего вы используете свои действия с веб-просмотрами, и как они должны использоваться другими приложениями в вашем вопросе.

Ваш рейтинг упал после этого инцидента?

Скорее, это должен быть комментарий, если у вас нет прав, подождите, чтобы получить это.

Narendra 14.11.2018 06:41

Перейдите в манифест Android и, если в веб-активности есть android:exported=”true“, измените его на android:exported=”false“.

Перейдите в манифест и добавьте следующие строки в действие Webview

<meta-data android:name = "android.webkit.WebView.EnableSafeBrowsing"
android:value = "true" />
android:exported Этот элемент устанавливает, может ли активность запускаться компонентами других приложений - «true», если это возможно, и «false», если нет. Если «false», активность может быть запущена только компонентами одного и того же приложения или приложений с одним и тем же идентификатором пользователя. developer.android.com/guide/topics/manifest/…
Mohd Qasim 16.01.2021 08:00
After a lot of struggle, below things worked for me       


 mWebView.getSettings().setAppCacheMaxSize(0);
 mWebView.getSettings().setAllowFileAccess(false);
 mWebView.getSettings().setAppCacheEnabled(false);

<meta-data android:name = "android.webkit.WebView.EnableSafeBrowsing"
android:value = "true" />

Нет необходимости отменять доступ к файлу или отключать кеш приложения, только строка ниже в манифесте решит проблему <meta-data android: name = "android.webkit.WebView.EnableSafeBrowsing" android: value = "true" />

Yasin Hassanien 13.02.2021 10:00

Мое приложение должно использовать WebView для доступа как к веб-сайтам, так и к локальным файлам. Я выполнил инструкции, предоставленные по электронной почте, и прошел тест безопасности Уязвимость сценариев между приложениями.

  1. Protect calls to evaluateJavascript and loadUrl.
  2. Prevent unsafe file loads.

Шаг 1 - заблокировать URL-адрес, который использует Схема URL-адресов Javascript, то есть URL-адрес начинается со строки «javascript:» при использовании метода webView.loadUrl. Шаг 2 - заблокировать URI локального файла с помощью метода shouldInterceptRequest или метода shouldOverrideUrlLoading, если URI локального файла не принадлежит вашим папкам.

Эти изменения не повлияют на мое приложение, потому что моему WebView не требуется использовать схему URL-адресов Javascript, а моему WebView не требуется доступ ко всем локальным файлам.

Другие вопросы по теме