当前位置: 首页 > 知识库问答 >
问题:

如何修复SQL注入veracode问题-CWE 564

皇甫飞飙
2023-03-14
@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;
}

查询q=session.createquery(query);处出现veracode扫描错误。有人能帮我解决这个问题吗。我可以在这里用什么来解决这个问题。veracode问题id是CWE 564。

共有1个答案

梁丘德寿
2023-03-14

使用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.setParameter("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;
}
 类似资料:
  • 我使用的是Selenium3.9.0+Geckodriver0.24+Firefox58.0.2。 当webdriver想要在我的目标站点上单击导航树中的元素时->script crashing with selenium异常:“selenium.Common.Exceptions.ElementClickInterceptedException:Message:element is not cl

  • 我们在服务器和客户机模式下使用Ignite 2.7.6:两个服务器和六个客户机。 正如我们所看到的,现在所有服务器节点的CPU负载都很高,约为250%(更新前为20%),而长G1 Young Gen的停顿时间高达5毫秒(更新前为300微秒)。 服务器配置为: 在Ignite服务器节点的内存转储中,我们看到大量,大小为21MB

  • 我正在对我的Java代码执行veracode扫描,它在我的一个DAO类中抛出了以下错误 SQL命令中使用的特殊元素的不正确中和(“SQL注入”)CWE ID 89 然而,我试图使用OWASP来减轻这种情况。ESAPI库,因为我不能使用参数化的输入来构造我的查询,因为我使用的是字符串生成器。以下是我正在尝试的示例代码 有人能帮忙吗?

  • 我在下面的行中得到了veracode问题 问题出现在上,这里报告的问题是“网页(基本XSS)中与脚本相关的HTML标记的不正确中和。我尝试了CWE.mitre.org中给出的修补程序,但无法正确应用。有没有人可以帮助解决这个问题?

  • 我正在每隔20秒启动一个基于的服务,它将数据发送到我的服务器。问题是我的堆和分配的堆大小继续增加。在分析堆转储时,我发现服务实例的数量等于对的调用数量。如何避免这个问题?

  • 本文向大家介绍PHPCMS2008广告模板SQL注入漏洞修复,包括了PHPCMS2008广告模板SQL注入漏洞修复的使用技巧和注意事项,需要的朋友参考一下 00 漏洞描述 PHPCMS2008由于广告模块取referer不严,导致一处sql注入漏洞.可以得到管理员用户名与密码,攻击者登录后台后可能会获取webshell,对服务器进行进一步的渗透。 01 漏洞分析 漏洞产生的位置: /ads/inc