Устранение уязвимости перед межсайтовым скриптингом

Эта информация предназначена для разработчиков, чьи приложения уязвимы перед File-based Cross-Site Scripting (межсайтовым скриптингом на основе файлов).

Общая информация

Одно или несколько ваших приложений уязвимы перед межсайтовым скриптингом на основе файлов. Вам необходимо принять меры до даты, указанной в Play Console. После нее приложения, содержащие уязвимости, могут быть удалены из Google Play.

Необходимые действия

  1. Чтобы узнать, какие приложения уязвимы и как скоро нужно устранить проблему, войдите в Play Console и откройте раздел "Оповещения".
  2. Обновите приложения и устраните уязвимость.
  3. Опубликуйте обновленные версии приложений.

После этого мы проведем повторную проверку, которая может занять несколько часов. Если уязвимость устранена и вы видите, что приложение опубликовано, дополнительных действий не потребуется. Если проблема не решена, новая версия не будет опубликована и вы получите уведомление по электронной почте.

Сведения об уязвимости

Классы WebView, у которых в параметре WebSettings установлено значение True для setAllowFileAccessFromFileURLs или setAllowUniversalAccessFromFileURLs, не должны загружать ненадежный контент. К нему относятся в том числе данные с надежных доменов, которые загружаются по протоколу HTTP. Из-за опасного контента или сетей может произойти внедрение скриптов, которые перенаправят WebView на вредоносный локальный файл и начнут атаку с использованием межсайтового скриптинга, нацеленную на локальные файлы или файлы cookie.

Уязвимость можно исключить одним из следующих способов:

  1. Убедитесь, что настройки WebView безопасны.
  2. Убедитесь, что WebView не может загружать локальные файлы или выполнять коды JavaScript.
  3. Убедитесь, что WebView с опасными настройками не может загружать контент из ненадежных источников.

1. Убедитесь, что настройки WebView безопасны

Задайте для атрибута android:targetSdkVersion в манифесте значение не меньше 16. Ещё один способ обеспечить безопасность настроек WebView – выполнить setAllowFileAccessFromFileURLs(false) и setAllowUniversalAccessFromFileURLs(false).

2. Убедитесь, что WebView не может загружать локальные файлы или выполнять коды JavaScript

Выполните setAllowFileAccess(false), чтобы помешать WebView с опасными настройками загружать локальные файлы, или setJavaScriptEnabled(false), чтобы запретить выполнение кодов JavaScript.

3. Убедитесь, что WebView с опасными настройками не может загружать контент из ненадежных источников

Если вам необходимо включить опасные настройки WebView, убедитесь, что загрузка контента из ненадежных источников отключена. Это касается в том числе всех данных, загружаемых по протоколу HTTP. Установите значение android:usesCleartextTraffic=false или настройте конфигурацию сетевой безопасности в манифесте, запретив HTTP-трафик. Ещё один способ – удостовериться, что ни один класс WebView с опасными настройками не загружает URL с использованием схем HTTP.

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

Мы всегда рады помочь!

Если у вас есть вопросы, задайте их, используя тег android-security. Чтобы получить более подробные разъяснения, свяжитесь с командой поддержки для разработчиков.

Эта информация оказалась полезной?
Как можно улучшить эту статью?