Grails 1.1 安全性 - 防止攻击 - SQL注入

Hibernate是实现GORM域类的基础技术,当提交数据库时会自动转义数据,所以这个没什么问题。

然而编写使用未检查的请求参数的脏动态HQL代码,仍然会有问题可能存在。

比如如下的这种做法就很容易受HQL注入攻击:def vulnerable = { def books = Book.find("from Book as b where b.title ='" + params.title + "'") }千万别这样做。假如你想传递参数,用命名参数和定位参数代替:def safe = { def books = Book.find("from Book as b where b.title =?", [params.title]) }