Обнаружение инъекций в спящем режиме - PullRequest
0 голосов
/ 04 октября 2011

Я использую Hibernate и хочу предотвратить инъекции в подготовленные операторы Hibernate. Есть ли простой способ сделать это? С Уважением, Хамед


Позвольте мне перефразировать мою проблему. :-) У меня много запросов в моем коде, которые находятся в форме: session.createQuery (...). Есть два вида запросов. те, у кого есть setParameters, и те, у кого его нет. Последнее в форме: выберите * из XYZ, где username = '"+ username +"' и password = '"+ password +"' ", что мне не подходит. Теперь моя проблема в том, как я могу автоматически найти вторую форму . У меня есть какое-нибудь решение?

Ответы [ 2 ]

0 голосов
/ 04 октября 2011

Вам нужно будет выполнить регистрацию (см. Аарон Шеффей) и включить шоу sql. Вот свойство для установки.

hibernate.show_sql=true

Более подробную информацию о регистрации вы можете найти здесь: http://docs.jboss.org/hibernate/core/3.3/reference/en/html/session-configuration.html#configuration-logging

Следующие свойства log4j также поместят операторы Hibernate в свой собственный файл.

log4j.logger.org.hibernate=DEBUG, org.hibernate

log4j.appender.org.hibernate=org.apache.log4j.DailyRollingFileAppender 
log4j.appender.org.hibernate.DatePattern=-yyyy-MM-dd-HH
log4j.appender.org.hibernate.File=${catalina.base}/logs/hibernate.log
log4j.appender.org.hibernate.layout=org.apache.log4j.PatternLayout 
log4j.appender.org.hibernate.layout.ConversionPattern=%d{dd MMM yyyy HH\:mm\:ss,SSS} [%t] %-5p %c %x - %m%n 
0 голосов
/ 04 октября 2011

Если вы зарегистрировались в DEBUG, вы можете увидеть, что делает Hibernate. Он выводит операторы, указывающие, что он делает с подготовленными утверждениями, в том числе когда он их использует.

...