2011-11-18 2 views
2

내가 같은 사용자가 입력 한 일부 params를 사용하는 기준에 쿼리를 가지고 쿼리 : 나는 주제뿐만 아니라 다른 기사에서 Grails의 문서를 읽고방지 SQL 주입이

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

, SQL 인젝션을 피하기 위해 HQL 방식에 대해서만 설명합니다.

기준은 백과 사전에서 HQL을 사용합니까? 또는 더 직접적으로,이 유형의 쿼리는 SQL 주입에 안전합니까?

저는 보안 문제에 대해 처음으로 익숙합니다.

답변

5

예, 귀하의 예제에있는 criteria 문은 주입으로부터 안전합니다.

Criteria 문은 Hibernate의 Criteria API를위한 편리한 빌더 일 뿐이므로, 사용자가 생성 한 모든 쿼리에는 동일한 동작이 적용됩니다.