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