Насколько безопасен SQL-Injection при использовании hibernate? - PullRequest
14 голосов
/ 07 марта 2012

Hibernate защищает от SQL injection attack? Если я использую hibernate, то полностью ли я защищен от атак SQL-инъекций? Я слышал, что использование Hibernate для выполнения dynamic SQL statement, созданного с помощью пользовательского ввода, может позволить злоумышленнику изменить значение оператора или выполнить произвольное SQL commands.

Ответы [ 2 ]

15 голосов
/ 07 марта 2012

Предохраняет ли Hibernate от атаки SQL-инъекцией?

Нет, она не защищает неправильно написанные , поэтому вам нужно быть осторожным при написаниизапросы.Всегда используйте подготовленный стиль оператора, например, рассмотрите следующие HQL запросы,

String query1 = "select * from MyBean where id = "+ id;
String query2 = "select * from MyBean where id = :id";

query1 ** по-прежнему уязвим для ** SQL-инъекции , где как query2 - это не так.

Короче говоря, hibernate предоставляет вам множество способов защиты от атак SQL-инъекций . * 1022.*

1 голос
/ 12 сентября 2017

1 Позиционный параметр в HQL

Query hqlQuery = session.createQuery("from Orders as orders where orders.id = ?");

List results = hqlQuery.setString(0, "123-ADB-567-QTWYTFDL").list();

2 Именованный параметр в HQL

Query hqlQuery = session.createQuery("from Employees as emp where emp.incentive > :incentive");

List results = hqlQuery.setLong("incentive", new Long(10000)).list();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...