Предотвращение SQL-инъекций в запросах критериев Grails - PullRequest
2 голосов
/ 18 ноября 2011

У меня есть запрос критерия, который использует некоторые params, введенные пользователем, такие как:

def query = MyTable.createCriteria()
def myQueryResult = query.list() {
   if (params.minToInvestMin)
                ge('minimalToInvest', params.minToInvestMin.toBigDecimal())
   if (params.minToInvestMax)
                le('minimalToInvest', params.minToInvestMax.toBigDecimal())
}

Я прочитал документ Grails на эту тему, а также некоторые другие статьи, но это толькоговорит о HQL способ избежать SQL-инъекций.

Использует ли критерий HQL в задней сцене?Или, прямо говоря, этот тип критериев запроса безопасен для инъекций SQL?

Я довольно плохо знаком с вопросами безопасности.

1 Ответ

5 голосов
/ 18 ноября 2011

Да, операторы критериев в вашем примере защищены от внедрения.

Операторы критериев являются просто удобным компоновщиком для Критерии API Hibernate, поэтому любой запрос, который вы создаете с его помощью, предоставляется всемтого же поведения.

...