Я использую Play! framework вместе с 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()
}
}
}
Я попытаюсь выяснить это с помощью взлома, но легко сделать ошибку, поэтому я подумал, что спросить было бы более уместно, и я могу воспользоваться мудростью толпы.