我正在使用 Hibernate 来保护我的网站免受 SQL 注入(inject)攻击。
听说 Hibernate Criteria API 比 HQL 更强大。 Hibernate Criteria Api 是否可以完全防止 SQL 注入(inject)?
最佳答案
是的,确实如此。
Criteria API以及HQL或JPQL中的查询参数都对参数进行了转义,不会执行恶意SQL。
仅当您简单地将参数连接到查询中时才会暴露该漏洞。然后任何恶意 SQL 都会成为您查询的一部分。
编辑 OWASP 有一个 SQL injection prevention cheatsheet .使用条件查询等同于防御选项 1:使用准备好的语句。
关于java - Hibernate Criteria Api 是否完全防止 SQL 注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15065906/