Подтвердить что ты не робот

Возможны ли инъекции SQL-инъекций в JPA?

Я создаю Java-приложение Java с использованием Java EE 6 и JSF-2.0, используя API-интерфейс persistence для всех операций с базой данных.

Back-end - это MySQL, но я использовал функции EntityManager и Named Queries в EJB-QL для всех операций. Возможны ли инъекции SQL-инъекций в этом случае?

4b9b3361

Ответ 1

Это возможно только в том случае, если вы вставляете контролируемые пользователем переменные в строку SQL/JPQL, например:

String sql = "SELECT u FROM User u WHERE id=" + id;

Если вы этого не делаете и используете только параметризованные/именованные запросы, тогда вы в безопасности.

Ответ 3

Если ваш поставщик JPA обрабатывает все входные аргументы для обработки инъекционных атак, вы должны быть защищены. Мы делаем тонкие в EclipseLink.

Как и предыдущий плакат, связанный с вашим собственным JPQL или SQL (для собственных запросов), вы можете разоблачить вас.

Я бы рекомендовал использовать именованные запросы с параметрами для конкатенации строк для создания JPQL/SQL.

Дуга