是否可以在Grails中进行SQL注入



我有一个搜索框,我正在提交像java等这样的文本,并在此基础上通过GORM找到rhe数据,就像给定的代码一样:

def searchQueryInSession = params?.searchQuery
def searchSkill = MetaSkills.findAllByName(searchQueryInSession)

是否可以在这里进行SQL注入?如果是,那么我们如何在所描述的场景中防止这种行为?

答案是:

GORM 将使用类似于以下内容的绑定参数创建查询:

select m.* from meta_skills m where name = ?

因此,它不会更改您的程序并造成任何伤害。

需要注意的是,在执行 HQL 时需要小心。 可以使用 HQL 编写注入攻击,例如

def vulnerable() {
def books = Book.find("from Book as b where b.title ='" + params.title + "'")
}

def vulnerable() {
def books = Book.find("from Book as b where b.title ='${params.title}'")
}

示例取自:圣杯文档 - 安全性

相关内容

  • 没有找到相关文章

最新更新