Hibernate 如何修复SQL代码问题-CWE 564

Hibernate 如何修复SQL代码问题-CWE 564,hibernate,veracode,secure-coding,Hibernate,Veracode,Secure Coding,我在Query q=session.createQuery(Query)中得到veracode扫描错误。谁能帮我解决这个问题。我可以在这里使用什么来解决问题。veracode问题id是CWE 564。改用query.setParameter,使name成为防止SQL注入的命名参数 @Override public AssetLibraryReference selectALRefByName(String entityName,String name) throws Exception {

我在
Query q=session.createQuery(Query)中得到veracode扫描错误。谁能帮我解决这个问题。我可以在这里使用什么来解决问题。veracode问题id是CWE 564。

改用query.setParameter,使name成为防止SQL注入的命名参数

@Override
public AssetLibraryReference selectALRefByName(String entityName,String name) throws Exception {
    AssetLibraryReference returnRef = null;
    String query = "from " + entityName + " where name = :name ";
    
    try {
        returnRef = sessionQueryUtil.doSessionQuery(session -> {
        //  queryStr.append("from " + entityName + " where name = :name ");             
            
          Query q =  session.createQuery(query);
                  q.setString("name", name);    
            
            
            return (AssetLibraryReference)q.uniqueResult();
        });
    } catch (HibernateException e) {
        LOG.error ("Caught hibernate exception",e);
        e.printStackTrace();
        throw e;
    } catch (Exception e) {
        LOG.error("Caught Exception :"+e.getMessage());
        e.printStackTrace();
        throw e;
    }

    return returnRef;
}

改为使用query.setParameter,使name成为防止SQL注入的命名参数

@Override
public AssetLibraryReference selectALRefByName(String entityName,String name) throws Exception {
    AssetLibraryReference returnRef = null;
    String query = "from " + entityName + " where name = :name ";
    
    try {
        returnRef = sessionQueryUtil.doSessionQuery(session -> {
        //  queryStr.append("from " + entityName + " where name = :name ");             
            
          Query q =  session.createQuery(query);
                  q.setString("name", name);    
            
            
            return (AssetLibraryReference)q.uniqueResult();
        });
    } catch (HibernateException e) {
        LOG.error ("Caught hibernate exception",e);
        e.printStackTrace();
        throw e;
    } catch (Exception e) {
        LOG.error("Caught Exception :"+e.getMessage());
        e.printStackTrace();
        throw e;
    }

    return returnRef;
}

答案对你有用吗?@RomanCanlas我已经实施了解决方案,正在等待veracode报告。@RomanCanlas没有兄弟,解决方案不起作用。。最新的veracode扫描结果是什么?查找结果有任何变化还是相同?@RomanCanlas是的,我能够解决问题。答案对您有效吗?@RomanCanlas我已经实施了解决方案,正在等待veracode报告。@RomanCanlas没有兄弟,解决方案无效。.最新的veracode扫描结果是什么?结果有什么变化吗?还是相同?@RomanCanlas是的,我能够解决这个问题。