Эта информация предназначена для разработчиков, чьи приложения уязвимы перед 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. Чтобы получить более подробные разъяснения, свяжитесь с командой поддержки для разработчиков.