SQL-инъекция при использовании ContentProvider - PullRequest
0 голосов
/ 16 января 2019

Я разработал приложение и опубликовал его в Google Play. Но он был отклонен, поскольку использует поставщика контента, который содержит уязвимость SQL-инъекции.
Я проверил Java-файл провайдера и не знаю, как это исправить! Это код Contentprovider:

enter image description here

Что мне сделать, чтобы это исправить?

1 Ответ

0 голосов
/ 16 января 2019

Защита вашего кода от уязвимостей SQL-инъекций, когда вы используете QueryBuilder, хитрая и тонкая.

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

Вот статья о внедрении SQL в поставщиках контента, в которой приводятся примеры того, как ненадежный контент может вызывать уязвимости внедрения SQL, а также более подробно описывается разработка Android:

https://solidgeargroup.com/sql-injection-in-content-providers-of-android-and-how-to-be-protected

TL; DR этого:

  • Проекция: проверить, существуют ли поля для запроса (имя, размер, формат в примере выше) в таблице, из которой мы хотим получить данные.

  • Выбор: использовать параметризованные методы запроса.

...