我有一个条件查询,它使用用户输入的一些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 文档以及其他一些文章,但它只讨论了避免 SQL 注入(inject)的 HQL 方法。
标准是否在后台使用 HQL? 或者更直接地说,这种类型的条件查询对 SQL 注入(inject)安全吗?
我对安全问题相当陌生。
最佳答案
是的,您示例中的条件语句可以安全地注入(inject)。
Criteria 语句只是 Hibernate Criteria 的一个方便的构建器。 API,因此您用它构造的任何查询都具有相同的行为。
关于grails - 防止 Grails 标准查询中的 SQL 注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8183220/