防止 Grails 标准查询中的 SQL 注入

发布于 2024-12-16 18:42:29 字数 507 浏览 0 评论 0原文

我有一个标准查询,它使用用户输入的一些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 的 HQL 方法注射。

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

我对安全问题相当陌生。

I have a criteria query that uses some params entered by the user, such as:

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

I have read the Grails doc on the subject as well as some other articles, but it only speaks about HQL way to avoid SQL injections.

Does criteria uses HQL in the backscene?
Or more directly, is this type of criteria query safe to SQL injections?

I am fairly new to security matters.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

年少掌心 2024-12-23 18:42:29

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

Criteria 语句只是 Hibernate 的 Criteria API 的便捷构建器,因此,您用它构造的任何查询都具有相同的行为。

Yes, the criteria statements in your example are safe from injection.

Criteria statements are just a convenient builder for Hibernate's Criteria API, so any query you construct with it is afforded all of the same behavior.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文