Защита вашего кода от уязвимостей SQL-инъекций, когда вы используете QueryBuilder, хитрая и тонкая.
Вкратце, вы должны убедиться, что ваш код и только ваш код управляют такими частями запроса, как выбор, проекция и порядок сортировки, которые используются для построения окончательного запроса. Вы не должны позволять использовать ненадежный контент для частей вашего запроса.
Вот статья о внедрении SQL в поставщиках контента, в которой приводятся примеры того, как ненадежный контент может вызывать уязвимости внедрения SQL, а также более подробно описывается разработка Android:
https://solidgeargroup.com/sql-injection-in-content-providers-of-android-and-how-to-be-protected
TL; DR этого:
Проекция: проверить, существуют ли поля для запроса (имя, размер, формат в примере выше) в таблице, из которой мы хотим получить данные.
Выбор: использовать параметризованные методы запроса.