我正在使用 Fortify 360 来分析我的代码的安全性。Fortify 已经确定了一种基于 Hibernate 的删除方法,可以根据传入的对象执行删除。我对 hibernate 的理解是,hibernate 会根据对象 id 删除与对象关联的表中的一行(id 为一个号码)。Fortify 已将此标记为 SQL 注入:休眠(输入验证和表示,数据流)。Fortify 似乎不喜欢 Hibernate 使用未经验证的输入执行动态 SQL 语句。是否需要进行某种修复,或者只是将其作为降低风险的警告?
public List findByItemProp(String propName, Object value){
try{
String qs = "from ItemTypes as model where model."+ propName +"= ?"; /* <-- flagged by Fortify */
Query qo = getSession().createQuery(qs);
qo.setParameter(0, value);
return qo.list();
} catch (){}
}