2017-03-06 22 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を検査することができます。

関連する問題