我正在与Hibernate合作保护我的网站免受SQL Injection。
我听说Hibernate Criteria API比HQL更强大。Hibernate Criteria Api是否可以完全防止SQL注入?
是的,它确实。
Criteria API以及HQL或JPQL中的查询参数均会转义参数,并且不会执行恶意SQL。
仅在您将参数简单地串联到查询中时,才会暴露此漏洞。然后,所有恶意SQL都将成为查询的一部分。
编辑 OWASP具有一个 防止SQL注入的速查表 。使用条件查询等同于防御选项1:使用准备好的语句。