Эта информация предназначена для разработчиков, чьи приложения уязвимы перед File-based Cross-Site Scripting (межсайтовым скриптингом на основе файлов).
Общая информация
Одно или несколько ваших приложений уязвимы перед межсайтовым скриптингом на основе файлов. Вам необходимо принять меры до даты, указанной в Play Console. После нее приложения, содержащие уязвимости, могут быть удалены из Google Play.
Необходимые действия
- Чтобы узнать, какие приложения уязвимы и как скоро нужно устранить проблему, войдите в Play Console и откройте раздел "Оповещения".
- Обновите приложения и устраните уязвимость.
- Опубликуйте обновленные версии приложений.
После этого мы проведем повторную проверку, которая может занять несколько часов. Если уязвимость устранена и вы видите, что приложение опубликовано, дополнительных действий не потребуется. Если проблема не решена, новая версия не будет опубликована и вы получите уведомление по электронной почте.
Сведения об уязвимости
Классы WebView
, у которых в параметре WebSettings
установлено значение True для setAllowFileAccessFromFileURLs
или setAllowUniversalAccessFromFileURLs
, не должны загружать ненадежный контент. К нему относятся в том числе данные с надежных доменов, которые загружаются по протоколу HTTP. Из-за опасного контента или сетей может произойти внедрение скриптов, которые перенаправят WebView на вредоносный локальный файл и начнут атаку с использованием межсайтового скриптинга, нацеленную на локальные файлы или файлы cookie.
Уязвимость можно исключить одним из следующих способов:
- Убедитесь, что настройки WebView безопасны.
- Убедитесь, что WebView не может загружать локальные файлы или выполнять коды JavaScript.
- Убедитесь, что 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. Чтобы получить более подробные разъяснения, свяжитесь с командой поддержки для разработчиков.