JPA Query - SQL-инъекция в позиционных параметрах jpa native query

Как я читал во многих статьях, когда я использую запрос JPA/Hibernate, хорошо устанавливать параметры в моих запросах, чтобы SQL-инъекция избегали. Например:

select user from User user where user.name = :name and user.surname = :surname

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

Я буду использовать менеджер сущностей и createNativeQuery. Но в этом случае параметры будут позиционными. Например:

select * from users where user_name = ? and user_surname = ?

Тогда в моем запросе я буду использовать метод setParameter(1, "name")и т. д. Так является ли этот случай "защищенным от внедрения SQL", как в параметризованном запросе?

5
задан nobeh 6 April 2012 в 20:06
поделиться