Эта информация предназначена для разработчиков, чьи приложения уязвимы перед внедрением SQL-кода.
Что происходит
Одно или несколько ваших приложений уязвимы перед внедрением SQL-кода. Это необходимо исправить до наступления даты, которая указана в уведомлении в Play Console. В противном случае приложения, содержащие неисправленные уязвимости, могут быть удалены из Google Play.
Что нужно сделать
- Чтобы узнать, какие приложения уязвимы и в какой срок нужно устранить проблему, войдите в Play Console и откройте раздел "Оповещения".
- Устраните уязвимость, внеся изменения в затронутые ей приложения.
- Опубликуйте обновленные версии приложений.
После этого мы проведем повторную проверку, которая может занять несколько часов. Если мы убедимся, что уязвимость устранена, то опубликуем приложение и дополнительных действий с вашей стороны не потребуется. В противном случае новая версия не будет опубликована, а вы получите уведомление по электронной почте.
Сведения об уязвимости
Использование методов query, update и delete в экспортируемых классах ContentProvider может привести к внедрению SQL-кода, если в необработанные инструкции SQL включены внешние ненадежные данные. В результате вредоносное ПО может получить доступ к личной информации или повредить базу данных. Эту проблему можно решить способами, приведенными ниже.
Если затронутый класс ContentProvider не должен быть доступен другим приложениям:
- Измените тег
<provider>затронутого классаContentProviderв манифесте, установив значениеandroid:exported="false". После этого другие приложения не смогут отправлять намерения затронутому классуContentProvider. -
Задайте для атрибута
android:permissionтегpermissionсо значениемandroid:protectionLevel="signature", чтобы приложения других разработчиков не могли отправлять намерения затронутому классуContentProvider.
Если затронутый класс ContentProvider должен быть доступен другим приложениям:
- Предотвратить внедрение SQL-кода в класс
SQLiteDatabase.queryможно, воспользовавшись режимом strict и картой проекций. Этот режим защитит класс от вредоносных предложений выбора, а карта проекций – от вредоносных предложений проекции. Используйте оба способа, чтобы обеспечить безопасность запросов. - Чтобы предотвратить внедрение SQL-кода в классы
SQLiteDatabase.updateиSQLiteDatabase.delete, используйте предложение выбора c заменяемым параметром"?"и отдельный массив аргументов выбора. Предложение выбора не должно включать ненадежные внешние данные.
Как получить помощь
Если у вас есть вопросы, задайте их, используя тег android-security. Чтобы получить более подробные разъяснения, свяжитесь с командой поддержки для разработчиков.