Skip to main content
配置与安全

安全扫描

了解 Qoder CLI CN 的分层安全扫描能力,以及如何配置自动检查和手动安全审查。

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

功能入口

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

扫描级别

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

L1 Static Check

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

L2 Lightweight Scan

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

L3 Deep Scan

L3 面向增量代码变更的深度分析。它会跨文件、跨函数追踪完整数据流,尝试发现单文件视角下不容易暴露的隐藏漏洞。 L3 更适合在提交前、评审前或安全敏感模块变更后开启,用于获得更全面的分析。

配置扫描级别

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

使用配置文件

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

自动扫描如何工作

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

手动安全扫描

除了自动扫描设置,Qoder CLI CN 还提供一个手动安全扫描 Skill:
/security-scan
直接输入 /security-scan 会弹出模式选择,包含三种扫描方式:
  • L3 深度扫描:对增量代码变更做跨文件、跨函数的深度分析。
  • L2 轻量扫描:对增量代码变更做语义级风险识别。
  • 项目/文件扫描:对整个仓库或指定路径执行云端扫描。
也可以在命令后直接说明意图,跳过选择器:
/security-scan 对整个仓库做一次完整扫描
/security-scan 对 src/auth 目录做安全扫描
扫描会关注真实可利用的风险,例如:
  • 认证绕过、令牌伪造、会话固定等身份类问题。
  • SQL 注入、命令注入、路径穿越、反序列化风险等数据篡改问题。
  • 硬编码密钥、敏感信息写入日志、错误信息暴露内部细节等信息泄露问题。
  • 缺少授权检查、越权访问、角色绕过等权限提升问题。
注意:L2 轻量与 L3 深度扫描受 /security-settings 中对应开关控制,关闭后无法手动触发;项目/文件扫描不受这两个开关影响。手动扫描优先面向新增或修改的代码(项目/文件扫描除外),并尽量排除纯理论风险和已被现有防护抵消的问题。

适合使用的场景

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

注意事项

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

相关文档

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