Устранение уязвимости к внедрению SQL-кода

Эта информация предназначена для разработчиков, чьи приложения уязвимы перед внедрением SQL-кода.

Что происходит

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

Что нужно сделать

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

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

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

Использование методов query, update и delete в экспортируемых классах ContentProvider может привести к внедрению SQL-кода, если в необработанные инструкции SQL включены внешние ненадежные данные. В результате вредоносное ПО может получить доступ к личной информации или повредить базу данных. Эту проблему можно решить способами, приведенными ниже.

Если затронутый класс ContentProvider не должен быть доступен другим приложениям:

Если затронутый класс ContentProvider должен быть доступен другим приложениям:

  • Предотвратить внедрение SQL-кода в класс SQLiteDatabase.query можно, воспользовавшись режимом strict и картой проекций. Этот режим защитит класс от вредоносных предложений выбора, а карта проекций – от вредоносных предложений проекции. Используйте оба способа, чтобы обеспечить безопасность запросов.
  • Чтобы предотвратить внедрение SQL-кода в классы SQLiteDatabase.update и SQLiteDatabase.delete, используйте предложение выбора c заменяемым параметром "?" и отдельный массив аргументов выбора. Предложение выбора не должно включать ненадежные внешние данные.

Как получить помощь

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

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