CheckMarx中文网站 > 新手入门 > Checkmarx查询预设怎么配置 Checkmarx查询预设不适配项目语言怎么办
教程中心分类
Checkmarx查询预设怎么配置 Checkmarx查询预设不适配项目语言怎么办
发布时间:2026/07/24 17:11:02

  项目接入Checkmarx后,扫描结果并不只是由源代码决定,所使用的查询预设同样会影响检测范围。预设中如果没有包含项目语言对应的查询,或者项目规则、扫描命令覆盖了原来的设置,就可能出现漏洞数量偏少、部分语言没有结果等情况。弄清Checkmarx查询预设怎么配置Checkmarx查询预设不适配项目语言怎么办,有助于让预设、项目语言和实际扫描范围保持一致。

  一、Checkmarx查询预设怎么配置

 

  查询预设是由多条SAST查询组成的规则集合。配置时可以新建空白预设,也可以复制现有预设后再调整,后者更适合已有项目。

 

  1、创建自定义查询预设

 

  ①登录Checkmarx One。

 

  ②进入【资源管理】→【SAST预设】。

 

  ③点击【添加预设】。

 

  ④在【预设名称】中填写便于识别的名称。

 

  ⑤根据需要填写【说明】。

 

  ⑥点击【下一步】。

 

  ⑦勾选项目使用的编程语言。

 

  ⑧展开对应语言,选择需要加入的查询。

 

  ⑨点击【保存预设】。

 

  选择查询时,可以通过搜索框输入CWE编号、语言名称或查询名称。预设名称不能与现有预设重复,保存后会显示在自定义预设列表中。

 

  2、复制现有预设后修改

 

  ①进入【资源管理】→【SAST预设】。

 

  ②把鼠标移动到需要参考的预设上。

 

  ③点击【克隆】。

 

  ④填写新的【预设名称】和【说明】。

 

  ⑤点击【保存预设】。

 

  ⑥打开新生成的预设,检查语言和查询范围。

 

  ⑦补充项目需要的查询,再保存修改。

 

  系统预设不能直接删除,复制后形成的自定义预设可以根据项目要求调整。这样不需要从空白状态逐条选择查询,也不容易遗漏基础规则。

 

  3、把预设应用到指定项目

 

  ①进入【项目】并找到目标项目。

 

  ②点击项目右侧的更多操作按钮。

 

  ③进入【项目设置】→【项目规则】。

 

  ④点击【添加规则】。

 

  ⑤选择【SAST】。

 

  ⑥在参数中选择【预设名称】。

 

  ⑦选择刚创建的查询预设。

 

  ⑧确认【允许覆盖】是否符合当前管理要求。

 

  ⑨保存项目规则。

 

  项目规则会覆盖账户层面的同名设置。如果扫描命令或代码配置文件又指定了其他预设,扫描级配置仍可能再次覆盖项目规则。

 

  二、Checkmarx查询预设不适配项目语言怎么办

 

  出现某种语言没有结果时,不要只在预设中随意增加查询。应先确认平台识别到了哪些语言,再检查预设和扫描范围。

 

  1、查看本次扫描实际使用的预设

 

  ①找到目标项目。

 

  ②点击更多操作按钮,进入【项目设置】。

 

  ③打开【扫描历史】。

 

  ④选择出现问题的扫描记录。

 

  ⑤进入【扫描配置】。

 

  ⑥展开【SAST】。

 

  ⑦查看【预设名称】和配置来源。

 

  如果这里显示的不是刚配置的预设,说明项目规则被账户设置、代码配置文件或扫描命令覆盖。使用命令行扫描时,还要检查是否传入了--sast-preset-name参数。

  2、补充项目语言对应的查询

 

  ①进入【资源管理】→【SAST预设】。

 

  ②找到当前项目使用的自定义预设。

 

  ③打开预设详情,查看已包含的语言。

 

  ④确认项目语言是否出现在列表中。

 

  ⑤没有对应语言时,编辑自定义预设,勾选该语言。

 

  ⑥展开语言分类,选择需要执行的查询。

 

  ⑦保存预设并重新发起扫描。

 

  如果使用的是系统预设,不建议直接改变原有规则范围。可以先克隆该预设,再在副本中增加项目语言和查询。

 

  3、检查语言模式和文件筛选

 

  多语言项目只按主语言扫描时,其他语言文件可能不会完整参与分析。

 

  ①进入【项目设置】→【项目规则】。

 

  ②查看SAST中的【语言模式】。

 

  ③多语言项目选择【多语言】。

 

  ④继续检查【文件和文件夹筛选】。

 

  ⑤确认没有使用!*.js、!*.py等规则排除实际源码。

 

  ⑥保存后执行一次完整扫描。

 

  Checkmarx支持的语言和文件扩展名存在明确范围。项目使用的语言、框架或文件后缀不在支持范围内时,仅调整预设无法产生对应结果。

 

  三、预设调整后怎么确认已经生效

 

  修改预设后,应通过一次完整扫描验证,避免增量扫描只处理少量变更,导致前后结果难以比较。

 

  1、重新运行完整扫描

 

  ①进入目标项目。

 

  ②点击【开始扫描】。

 

  ③选择SAST扫描。

 

  ④关闭增量扫描选项。

 

  ⑤确认本次使用的预设名称。

 

  ⑥提交完整代码并开始扫描。

 

  扫描结束后,再进入【项目设置】→【扫描历史】→【扫描配置】→【SAST】,确认预设名称、语言模式和筛选规则均为调整后的内容。

 

  2、对比语言和查询结果

 

  打开扫描结果,按照语言、查询名称和严重程度筛选。重点查看原本没有结果的语言是否已经出现查询记录,同时确认漏洞数量变化是否与新增查询范围相符。

 

  如果预设已经生效,但某类文件仍没有结果,应继续核对文件扩展名、源码目录、排除规则和语言支持范围,而不是反复更换预设。

  总结

 

  查询预设的作用,是让Checkmarx按照项目需要组合检测规则,而不是让所有项目机械使用同一套查询。处理Checkmarx查询预设怎么配置Checkmarx查询预设不适配项目语言怎么办时,需要把预设内容、项目规则、语言模式和扫描配置放在一起检查,才能判断问题究竟出在规则范围还是源码识别。希望本文能为Checkmarx查询预设的配置与排查提供帮助,如有相关需求,欢迎联系咨询。

135 2431 0251