2017-03-06 58 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。