SQL注入问题 - getHibernateTemplate()。delete(getObject(objectClass,objectId))方法

时间:2012-06-04 13:20:56

标签: hibernate final

我正在修复安全问题审核报告的代码 - SQL注入。 在我的代码中,广泛使用以下方法来删除记录。 该方法在基类中定义,并由模块中的每个其他dao级别类扩展。

public void delete(Class objectClass, long objectId)throws DAOException{
        try{
            getHibernateTemplate().delete(getObject(objectClass,objectId));
        }catch(Exception e){
            throw new DAOException(e);
        }
    }

并且,方法调用 。getHibernateTemplate()删除(的getObject(objectClass的,OBJECTID));

据报道

容易出现SQL注入。报道如

“将从servlet请求接收的数据(”getObject(objectClass,objectId)“)注入用户定义的危险”。

如何解决问题。 我已经完成了足够的功课,并且已经通过HQL中的预处理语句修复了更多的SQL注入问题。

先谢谢。

1 个答案:

答案 0 :(得分:0)

ANSWER - 此方法本身使用绑定参数,可以通过Log4j api进行验证。我已经验证了绑定参数的日志,并且针对此问题的SQL注入是不可行的