NHibernate и инъкции SQL (SQL Injection) - CodeHelper

NHibernate и инъкции SQL (SQL Injection)

1

Насколько безопасен NHibernate в плане SQL/HQL-инъекций? Нужно ли пользователю производить какие-то действия для зачистки параметров запроса перед выполнением?

Лучший ответ:

1

Если пользователь конструирует запрос HQL вручную, используя конкатенацию строк, то NHibernate полностью открыт для атак типа HQL-Injection. Вот так делать нельзя:

Query query = session.CreateQuery("from Product where name='" + userSuppliedName + "'");

В тоже время, если использовать механизм NHibernate передачи параметров в запрос или использовать критерии для построения запросов, то никакой опасности инъекций нет:

Query query = session.createQuery("from Product where Name=:productName");
query.SetParameter("productName", userSuppliedName);
v1.7.123.556
© 2009—2010 CodeHelper FAQ | О сайте | Обратная связь | История изменений | Статьи
Creative Commons LicenseМатериалы сайта распространяются под лицензией Creative Commons Attribution-Share Alike 3.0 Unported.