如何解决 Checkmarx 抛出的二阶 SQL 注入问题

问题描述 投票:0回答:0

我遇到了一个问题,Checkmarx 将我的一项服务标记为具有二阶 SQL 注入漏洞。我试图做一些研究来弄清楚如何解决这个问题,但大多数解决方案似乎都是围绕使用参数的查询。被标记的这个查询不使用任何参数。有问题的代码在这里:

public static final String SELECT_NEXTVAL_FOR = "SELECT NEXTVAL FOR ";
public static final String FROM_SYSIBM = " FROM SYSIBM.SYSDUMMY1";
public static final String CONTACT_ID_TABLE = ".CNTCT_ID";
@Autowired
EntityManager entityManager;

@Value("#{ systemProperties['sequence.schema']}")
String sequenceSchema;

public Integer getNextContactId() {
    Query getNextContactIdQuery = entityManager.createNativeQuery(
            SELECT_NEXTVAL_FOR + sequenceSchema + CONTACT_ID_TABLE + FROM_SYSIBM);

    return (Integer)getNextContactIdQuery.getSingleResult();
}

Checkmarx 给出的信息在这里:

应用程序的 getNextContactId 方法使用 BinaryExpr 执行 SQL 查询,在 src\main\jav 的第 27 行

java spring-boot db2 checkmarx
© www.soinside.com 2019 - 2024. All rights reserved.