跳转到主要内容
Qoder CLI 内置安全扫描能力,可以在代码生成和代码变更过程中辅助发现高风险安全问题。它适合在日常开发中作为一层持续检查机制,帮助你尽早发现危险函数调用、注入风险、敏感信息泄露和跨文件数据流问题。 安全扫描不是替代安全团队审计的完整方案。它主要面向当前任务生成的代码和增量代码变更,帮助你在提交前发现可操作的问题。

功能入口

在交互式 TUI 中输入:
该命令会打开安全扫描设置面板。你可以在面板中查看并切换不同级别的扫描能力。 安全扫描能力默认开启。设置会写入用户级配置,用于控制各层扫描能力的开关。L1 Static Check 免费;L2 Lightweight Scan 和 L3 Deep Scan 可能消耗 Credits,具体以产品内提示和当前账号计费规则为准。

扫描级别

Qoder CLI 将安全扫描拆成三个级别。你可以按需要分别开启或关闭。

L1 Static Check

L1 用于当前任务中生成的代码。它通过高风险模式匹配快速检查常见问题,例如危险函数调用、明显的敏感信息泄露模式和其他容易在生成代码中出现的风险。 L1 Static Check 是免费的基础检查,建议默认保持开启,用于在当前任务中快速发现高风险代码模式。

L2 Lightweight Scan

L2 面向增量代码变更。它会进一步理解代码语义,识别更复杂的风险,例如 SQL 注入、远程命令执行、敏感数据泄露等。 如果你希望在日常编码时获得更深入的安全反馈,建议开启 L2。

L3 Deep Scan

L3 面向增量代码变更的深度分析。它会跨文件、跨函数追踪完整数据流,尝试发现单文件视角下不容易暴露的隐藏漏洞。 L3 更适合在提交完成后、评审、推送、创建 PR、发布或部署等交付动作前使用。如果当前只有工作区变更,L3 可能会回退到 L2。

配置扫描级别

打开 /security-settings 后,可以使用方向键在扫描级别之间移动,按 Enter 或 Space 切换开关。按 q 或 Esc 可退出面板。 面板中的每一项会显示当前状态:
  • on 表示该级别已启用。
  • off 表示该级别已关闭。
  • default 表示当前使用默认值。
  • saved 表示该项已经写入用户级配置。
设置面板只写入用户级配置,不会修改项目级配置。

使用配置文件

你也可以在用户级 settings.json 中配置安全扫描。配置项位于 securityScan 下:
这三个配置项默认都是 true。如果你想关闭某个级别,可以将对应字段设为 false

自动扫描如何工作

启用安全扫描后,Qoder CLI 会根据你的配置加载内置安全能力,并决定启用哪些检查。 当 L1 开启时,Qoder CLI 会在相关工具调用后触发静态检查能力。关闭 L1 后,这部分自动检查不会加载。 只要 L1、L2、L3 中至少有一个开启,Qoder CLI 就会保留统一的安全扫描能力。如果 L1、L2、L3 全部关闭,安全扫描相关能力不会加载。

手动安全扫描

除了自动扫描设置,Qoder CLI 还提供一个手动安全扫描 Skill:
该命令会根据你的意图进入以下三种工作流之一:
  • 项目/文件扫描:扫描整个仓库,或扫描你明确指定的文件和目录。
  • L2 轻量审查:审查当前工作区变更。
  • L3 深度审查:在推送、创建 PR、发布、部署或其他交付动作前,审查尚未审查过的已提交变更。
直接输入 /security-scan 会打开选择器,选项包括 L3 深度扫描、L2 轻量扫描和项目/文件扫描。如果选择项目/文件扫描但没有指定范围,Qoder CLI 会继续询问扫描整个仓库还是指定文件和目录。 你也可以直接在命令中写明模式或范围:
只要任一安全扫描级别开启,项目/文件扫描就可用。L2 和 L3 分别受自己的设置开关控制。显式请求已关闭的 L2 或 L3 时,Qoder CLI 会提示你通过 /security-settings 开启;隐式交付场景中的 L3 检查在 L3 关闭时会保持静默。

适合使用的场景

安全扫描适合放在以下场景中使用:
  • 让 Qoder CLI 生成或修改了安全敏感代码后,例如鉴权、支付、数据导出、文件上传、命令执行等。
  • 在提交代码或交付代码前,希望快速检查当前变更是否引入高风险问题。
  • 在评审前,希望先得到一份面向真实漏洞的安全风险提示。
  • 在使用自动化模式时,希望保留一层持续安全检查。

注意事项

安全扫描主要关注当前任务和增量变更。项目/文件扫描可以扫描整个仓库或指定路径,但它仍不是完整安全审计,也不保证发现所有漏洞。 扫描结果依赖当前代码上下文、可访问文件和启用的扫描级别。对于关键业务代码,建议结合人工安全评审、测试、依赖扫描和组织内安全流程一起使用。 如果安全扫描没有按预期工作,可以先检查以下内容:
  • /security-settings 中对应扫描级别是否为 on
  • 用户级 settings.json 中是否显式关闭了 securityScan 的某些字段。
  • 如果通过配置文件修改,确认 JSON 格式正确并已保存到用户级配置。
  • 当前任务是否产生了可供扫描的新增或修改代码。

相关文档

  • 权限:了解工具调用审批、权限模式和允许/拒绝规则。
  • Hooks:了解 Qoder CLI 如何在工具调用和会话生命周期中执行自动化逻辑。
  • Skills:了解如何通过 Skill 扩展 Qoder CLI 的专业能力。