2017-03-06 88 views
1

我已经看到了一些主题名为参数的手段对讨论SQL注入的保护,但如何休眠之类的语句Hibernate和SQL注入

currentSession().update(object); 

currentSession().save(object)

这些安全吗?或者是更安全始终使用命名的参数,如

currentSession().createQuery("update Object set field=:field where id=:id").setParameter("field", field).setParameter("id", id).executeUpdate()

回答

3

它们很安全,Hibernate使用绑定​​变量来实体CRUD语句。为每个实体缓存语句,以避免每次需要时创建它们,并在执行时仅提供绑定变量值。

可以enable SQL logging检查生成的SQL。