Чтобы получить некоторые данные, я создаю sql-запрос :)
Конечно, есть некоторая фильтрация и упорядочение частей.
Чтобы получить результат, я использую «NamedParameterJdbcTemplate», и когда мне нужно что-то добавить в часть «где», я использую карту параметров, чтобы предотвратить внедрение.
Но с частью «упорядочить по» все по-другому, так как нет автоматического экранирования (и это часть sql). Эта часть заказа иногда заполняется данными от пользователя (напрямую), иногда добавляются дополнительные параметры сортировки из кода. Есть одна проблема: иногда это поле сортировки содержит не только имя столбца, но и выражение sql.
Теперь каждый параметр для сортировки экранируется вручную путем замены некоторых символов (например, ') на пустую строку, но некоторые параметры, которые мы устанавливаем для нашего кода, немного сложны для прохождения этого правила.
Каков наилучший способ предотвратить инъекции sql в части сортировки запроса, когда вы используете шаблон jdbc?
PreparedStatement
? - person Romain   schedule 30.01.2012order by
в Oracle. - person Ben   schedule 30.01.2012