我正在使用游戏!框架与 Anorm 一起访问数据库。我经常看到像下面这样的例子,对象成员被直接注入到 SQL 语句中。
我的问题是,这些输入是否经过消毒?大多数示例如下所示:
object Person {
def save(p:Person) {
DB.withConnection ("default") { implicit connection =>
SQL("""
INSERT INTO person(firstName,lastName)
values ({firstName}, {lastName})
"""
).on(
"firstName" -> p.firstName,
"lastName" -> p.lastName
).executeUpdate()
}
}
}
我会尝试通过hack的方式找出来,但是很容易出错,所以我认为问更合适,我可以借鉴群众的智慧。