使用 Hibernate 的 Restrictions.eq() 方法(如下例所示)是否可以安全地防止 SQL 注入?或者类似的方法,如 Restrictions.in()、Restrictions.ge()、...
String vulnerable = //parameter from user interface
Criteria ct = this.getCriteria();
ct.add(Restrictions.eq("propertyName", vulnerable));
我发现这可能是,正如这个答案所解释的那样
但是查看OWASP 文档,有一个示例显示了令我困惑的注释 ( // This should REALLY be validated too
)。需要验证输入,还是原样安全?
OWASP 文档中的示例
// Criteria API
// This should REALLY be validated too
String userSuppliedParameter = request.getParameter("Product-Description");
// Perform input validation to detect attacks
Inventory inv = (Inventory) session.createCriteria(Inventory.class).add
(Restrictions.eq("productDescription", userSuppliedParameter)).uniqueResult();