SQL-инъекция при использовании ContentProvider

, чтобы получить правду с вероятностью 10%:

bool result = new Random().Next(1, 11) % 10 == 0;

, чтобы получить значение с вероятностью 40%:

bool result = new Random().Next(1, 11) > 6;
0
задан Rohit Singh 16 January 2019 в 10:27
поделиться

1 ответ

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

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

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

https: // solidgeargroup .com / sql-инъекция в контент-провайдерах андроида и как быть защищенным

TL; DR этого:

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

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

    0
    ответ дан Bill Karwin 16 January 2019 в 10:27
    поделиться
    Другие вопросы по тегам:

    Похожие вопросы: