在Grails条件查询中防止SQL注入

Ale*_*ier 2 grails sql-injection hql criteria

我有一个条件查询,使用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())
}
Run Code Online (Sandbox Code Playgroud)

我已经阅读了关于该主题的Grails文档以及其他一些文章,但它只谈到了避免SQL注入的HQL方法.

标准是否在后台使用HQL?或者更直接地说,这种类型的标准查询对SQL注入是否安全?

我对安全问题很新.

Rob*_*ska 5

是的,您的示例中的条件语句可以安全地注入.

Criteria语句只是Hibernate Criteria API的一个方便的构建器,因此您使用它构造的任何查询都具有所有相同的行为.