Эта информация предназначена для разработчиков, в приложениях которых возможна утечка конфиденциальных данных через интерфейс JavaScript.
Суть проблемы
Ознакомьтесь с уведомлением в Play Console.
Необходимые действия
- Чтобы узнать, в каких приложениях есть уязвимость и как скоро нужно устранить проблемы, ознакомьтесь с информацией в уведомлении Google Play. Его можно найти на электронной почте владельца аккаунта.
- Устраните уязвимость и обновите затронутые ей программные продукты.
- Опубликуйте обновленные версии приложений.
После этого мы проведем повторную проверку, которая может занять несколько часов. Если мы убедимся, что уязвимость устранена, то опубликуем приложение и дополнительных действий с вашей стороны не потребуется. В противном случае новая версия не будет опубликована, а вы получите уведомление по электронной почте.
Сведения об уязвимости
В соответствии с правилами Google Play о злоупотреблении ресурсами устройства и сети приложения или сторонний код (например, SDK), использующие язык JavaScript, который загружается во время работы, не должны нарушать правила Google Play для разработчиков.
В статье блога Google Developers о создании веб-приложений в WebView под интерфейсом JavaScript понимаются любые объекты, которые предоставляют компоненту WebView доступ к функциональным возможностям через метод addJavascriptInterface
.
Из-за класса уязвимостей, связанного с интерфейсами JavaScript, могут быть нарушены правила Google Play относительно пользовательских данных и вредоносного ПО. В некоторых случаях это приводит к сбору и краже данных, а также их использованию для причинения вреда без ведома разработчика приложения или SDK.
Вы можете устранить уязвимость одним из приведенных ниже способов.
Вариант 1. Убедитесь, что компоненты WebView не добавляют объекты в интерфейс JavaScript
Убедитесь, что в интерфейсе JavaScript компонентов WebView, загружающих ненадежный веб-контент, нет новых объектов. Это можно сделать двумя способами:
- Исключите вставку объектов с помощью метода addJavascriptInterface.
-
Удалите объекты из интерфейса JavaScript в shouldInterceptRequest с помощью метода removeJavascriptInterface до загрузки ненадежного контента.
Вариант 2. Убедитесь, что интерфейс JavaScript не предоставляет доступ к функциональным возможностям, связанным с конфиденциальностью
Проверьте, чтобы в интерфейсе JavaScript не было функций, связанных с конфиденциальностью (например, вызовов Android API, для работы которых требуются разрешения). Не допускается сбор конфиденциальной информации о пользователе или устройстве, а также предоставление доступа к API, например обеспечивающим специальные возможности или обмен SMS. Устранить уязвимость можно двумя способами:
- Реализуйте вызов функций, для работы которых требуется доступ к конфиденциальной информации, через код внутри приложения. Обязательно сообщите пользователям, как и для чего вы будете использовать и собирать данные.
- Удалите все функции, которые предоставляют доступ к функциональным возможностям, связанным с конфиденциальностью, или пользовательским данным, которые доступны через интерфейс.
Вариант 3. Убедитесь, что компонент WebView не предоставляет ненадежным источникам доступ к функциональным возможностям, связанным с конфиденциальностью
Если в компоненте WebView есть функциональные возможности, связанные с конфиденциальностью, загружать произвольный код JavaScript из неизвестных источников нельзя. Кроме того, необходимо сообщить пользователям, как и для чего используются их данные. Убедитесь, что в WebView загружается только контент из строго ограниченного набора URL или контент, принадлежащий разработчику приложения.
Если вы не устраните уязвимость, к приложению будут применены меры из-за возможных нарушений правил Google Play.
Мы всегда готовы помочь
Если вы не согласны с результатами проверки, обратитесь в службу поддержки. Наши специалисты свяжутся с вами в течение двух рабочих дней.
Спасибо за вашу поддержку. Мы постоянно совершенствуем сервис Google Play, чтобы сделать его удобнее для разработчиков и пользователей.