1、背景描述
前段时间在考虑使用CodeQL检测SpringBoot应用中的SQLi时,发现SQL语句的映射文件Mapper.xml都没有包含到CodeQL的数据库中,所以无法关联到对应的SQL语句,我在看日志时发现了方案一这样的解决办法,后来在看CodeQL在Github中的Issure时看到方案二这样的办法。
2、方案一
在codeql-cli/java/tools/pre-finalize.cmd文件中插入—include “/resources//*.xml”
—include命令可以使用如下通配符
?,用来匹配正斜杠/反斜杠之外的任意单个字符
,用来匹配正斜杠/反斜杠之外的任意数量的字符
*,用来匹配零个或多个完整的目录
—include “/resources//*.xml”表示将resources目录下面所有的xml文件加入索引文件
3、方案二
https://github.com/github/codeql/issues/3887
拆分为如下命令,在index-files中将xml文件添加到CodeQL的数据库中
codeql database init --source-root=<src> --language java <db>
codeql database trace-command --working-dir=<src> <db> <java command>
codeql database index-files --language xml --include-extension .xml --working-dir=<src> <db>
codeql database finalize <db>
上面的4条命令等价于下面这1条命令
codeql database create --source-root <src> --language java --command <java command> <db>