功能入口
在交互式 TUI 中输入:扫描级别
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 会继续询问扫描整个仓库还是指定文件和目录。
你也可以直接在命令中写明模式或范围:
/security-settings 开启;隐式交付场景中的 L3 检查在 L3 关闭时会保持静默。
适合使用的场景
安全扫描适合放在以下场景中使用:- 让 Qoder CLI 生成或修改了安全敏感代码后,例如鉴权、支付、数据导出、文件上传、命令执行等。
- 在提交代码或交付代码前,希望快速检查当前变更是否引入高风险问题。
- 在评审前,希望先得到一份面向真实漏洞的安全风险提示。
- 在使用自动化模式时,希望保留一层持续安全检查。
注意事项
安全扫描主要关注当前任务和增量变更。项目/文件扫描可以扫描整个仓库或指定路径,但它仍不是完整安全审计,也不保证发现所有漏洞。 扫描结果依赖当前代码上下文、可访问文件和启用的扫描级别。对于关键业务代码,建议结合人工安全评审、测试、依赖扫描和组织内安全流程一起使用。 如果安全扫描没有按预期工作,可以先检查以下内容:/security-settings中对应扫描级别是否为on。- 用户级
settings.json中是否显式关闭了securityScan的某些字段。 - 如果通过配置文件修改,确认 JSON 格式正确并已保存到用户级配置。
- 当前任务是否产生了可供扫描的新增或修改代码。