
产品支持范围 Qoder Security 将率先在 Qoder Desktop 和 Qoder CLI 中提供,其他 Qoder 产品将陆续支持。具体能力及可用范围以各产品发布说明为准。
Qoder Security 是什么
Qoder Security 是 Qoder 面向 AI 编码流程提供的代码安全能力。在 Qoder Agent 编写或修改代码的过程中,它通过静态检查、代码语义分析和跨文件数据流追踪,帮助识别潜在的安全风险,并提供与代码相关的风险位置、传播路径和判断依据。
Qoder Security 通过三层能力支持不同层次的安全分析:
| 检测层级 | 分析方式 | 主要作用 |
|---|---|---|
| 静态检查 | 高风险模式和规则匹配 | 快速识别危险函数、硬编码密钥等明确风险 |
| 轻量扫描 | 结合代码语义分析增量变更 | 判断外部输入如何进入网络请求、数据库查询或敏感操作 |
| 深度扫描 | 跨文件、跨函数追踪数据流 | 识别单个文件中难以发现的完整风险路径 |
/security-scan 主动发起安全扫描。
发现问题后,开发者可以在当前会话中继续让 Agent 分析和修改代码,再次执行扫描以复验修复结果。由此,安全反馈能够从单一告警进一步延伸到"发现—理解—修复—复验"的完整流程。
Qoder Security 面向编码阶段提供前置安全检查,与人工代码审查、专业渗透测试、SAST、SCA 及组织现有的安全治理流程互补,不替代这些机制。
开始实践前
本文覆盖五类常见的安全边界:
| 实践 | 正常开发需求 | 重点观察的风险 |
|---|---|---|
| YAML 响应兼容 | 解析 YAML 格式的服务响应 | 不安全反序列化 |
| 从 URL 导入封面 | 服务端下载用户提供的图片 | 服务器端请求伪造(SSRF) |
| 上传并恢复快照 | 使用上传文件名保存快照 | 路径穿越 |
| 数据库写操作便捷方法 | 动态生成表名和字段名 | SQL 标识符注入 |
| FFmpeg 自定义参数 | 将扩展参数加入音频处理命令 | 命令注入 |
- 在本地或隔离的测试环境中准备指定项目与代码版本。
- 使用 Qoder Desktop 或 Qoder CLI 打开项目,并确认 Qoder Security 已启用。
- 复制本文提供的原始提示词,让 Agent 按照正常开发流程实现需求。
-
功能实现完成后执行
/security-scan。 - 查看风险位置、数据传播路径和判断依据。
- 审阅建议的修改方案,并让 Agent 完成修复。
- 运行项目原有测试,检查相关功能是否受到影响。
-
再次执行
/security-scan,观察是否仍报告同一路径的同类风险,并结合测试确认修改结果。
场景用途 以下场景参考公开且已修复的历史安全问题,用于观察编码阶段能否识别并处理同类风险。实践目的不是要求 Agent 刻意编写漏洞,也不代表 Qoder 复现或重新发现了相关 CVE。相关开源项目与 CVE 仅用于说明公开场景来源,不代表合作或背书。
结果边界 不同产品版本、项目状态和会话上下文可能影响扫描结果。本文列出的观察要点不构成对具体扫描结果的保证。
实践一:为服务响应增加 YAML 兼容
场景背景
客户端需要兼容服务端返回的多种内容格式,是常见的产品演进需求。但数据格式发生变化时,解析方式也会随之变化:如果将外部响应交给能够实例化任意对象的反序列化接口处理,原本看似简单的兼容性改动可能引入高风险行为。
这个场景用于观察 Qoder Security 是否能够结合响应来源、Content-Type 判断和 YAML 解析方式,识别不安全反序列化风险,而不是仅仅看到"新增 YAML 支持"。
体验环境
opensearch-ruby 项目,然后原样输入以下提示词。
体验提示词(请完整复制)
触发与观察
Agent 完成修改后,执行 /security-scan。重点观察:
- 扫描是否识别外部响应体进入 YAML 解析接口的路径。
- 结果是否解释具体解析方式为什么可能产生风险。
- 结果是否说明风险成立所需的输入条件或可达路径。
- 修复方案是否在保持 YAML 兼容能力的同时,限制可被反序列化的数据类型。
- 相关测试通过后,再次执行扫描,观察是否仍报告同一路径的同类风险。
实践二:从 URL 导入封面图片
场景背景
从 URL 导入图片,可以减少用户先下载、再上传的操作,是内容管理系统中的常见需求。但当服务端代替用户访问一个外部地址时,产品同时建立了一条新的网络访问路径。如果目标地址和重定向缺少边界检查,外部输入可能被用于访问本机、内网或其他不应暴露的网络资源。
这个场景用于观察 Qoder Security 是否能够沿着"用户提交 URL—服务端下载—重定向—临时文件"的调用链,分析服务端请求伪造风险。
体验环境
kavita 项目,然后原样输入以下提示词。
体验提示词(请完整复制)
触发与观察
Agent 完成修改后,执行 /security-scan。重点观察:
- 扫描是否识别 URL 来自接口输入,并最终进入服务端网络请求。
- 结果是否关注本机地址、私有网络地址以及重定向后的目标地址。
- 风险说明是否给出从输入点到请求点的具体代码路径。
- 修复方案是否在保留图片导入能力的同时,建立明确的协议和网络地址边界。
- 相关测试通过后,再次执行扫描,观察是否仍报告同一路径的同类风险。
实践三:上传并恢复集合快照
场景背景
快照上传和恢复通常横跨接口处理、文件保存和数据恢复等多个模块。上传功能本身并不复杂,但如果客户端提供的文件名未经规范化和边界校验就参与路径拼接,文件可能被写入预期快照目录之外。
这个场景用于观察 Qoder Security 是否能够跨越 multipart 解析、文件名处理、路径生成和快照恢复流程,识别完整的路径穿越风险。
体验环境
qdrant 项目,然后原样输入以下提示词。
体验提示词(请完整复制)
触发与观察
Agent 完成修改后,执行 /security-scan。重点观察:
- 扫描是否追踪 multipart 文件名如何进入路径拼接和文件写入操作。
- 结果是否说明仅检查字符串表面不足以保证最终路径仍位于快照目录内。
- 风险路径是否覆盖上传 handler 与已有恢复流程之间的调用关系。
- 修复方案是否对文件名和规范化后的目标路径同时建立边界约束。
- 相关测试通过后,再次执行扫描,观察是否仍报告同一路径的同类风险。
实践四:增加数据库写操作便捷方法
场景背景
数据库封装通常会使用预编译和参数绑定处理查询值,但表名、列名等 SQL 标识符不能以相同方式绑定。如果动态标识符来自不受信任的数据结构,代码即使正确绑定了所有"值",仍可能存在注入风险。
这个场景用于观察 Qoder Security 是否能够区分 SQL 值与 SQL 标识符,结合调用方可控性判断动态拼接是否构成风险。
体验环境
flightphp-core 项目,然后原样输入以下提示词。
体验提示词(请完整复制)
触发与观察
Agent 完成修改后,执行 /security-scan。重点观察:
- 扫描是否区分已参数化的查询值与动态拼接的表名、列名。
-
结果是否分析
$table和$data键的来源及其可控性。 - 风险说明是否解释为什么仅使用 PDO 参数绑定仍不足以处理 SQL 标识符。
- 修复方案是否为允许使用的表名和字段名建立明确约束,同时保留现有接口能力。
- 相关测试通过后,再次执行扫描,观察是否仍报告同一路径的同类风险。
实践五:支持 FFmpeg 自定义参数
场景背景
允许调用方传入额外的媒体处理参数,可以快速扩展裁剪、滤镜等能力。但如果一个外部字符串被直接拼入命令并交由 shell 解释,它可能改变预期的命令结构,进而执行未经授权的操作。
这个场景用于观察 Qoder Security 是否能够追踪自定义参数从方法入口进入命令构造和进程执行的路径,并判断是否存在命令注入风险。
体验环境
discordrb 项目,然后原样输入以下提示词。
体验提示词(请完整复制)
触发与观察
Agent 完成修改后,执行 /security-scan。重点观察:
-
扫描是否追踪
options参数如何进入命令字符串和进程执行接口。 - 结果是否区分"支持更多 FFmpeg 选项"这一产品目标与"允许改变 shell 命令结构"的安全后果。
- 风险说明是否指出参数来源和实际调用方式是判断风险是否成立的重要条件。
- 修复方案是否优先采用结构化参数传递或严格的允许列表,而不是依赖不完整的字符串过滤。
- 相关测试通过后,再次执行扫描,观察是否仍报告同一路径的同类风险。
从五个场景理解 Qoder Security 的价值
五项实践分别覆盖数据解析、网络访问、文件系统、数据库和系统命令。它们使用不同语言和项目结构,但具有一个共同特征:开发者提出的是合理、常见的产品需求,风险却隐藏在数据如何进入并抵达敏感操作的过程中。
Qoder Security 的价值不只是增加一次扫描,而是将安全分析融入实际编码流程:
- 更早发现风险:在功能实现和代码修改阶段提供安全反馈,降低问题进入后续环节后的处理成本。
- 提供上下文证据:结合输入来源、数据传播和敏感操作分析风险,帮助开发者理解问题为什么可能成立。
- 推动修复落地:从发现、定位到修改和复验保持在同一个编码会话中,缩短安全结果转化为代码修复的路径。
- 补充现有体系:与 CI/CD、SAST、SCA、人工审查和专业安全测试形成互补,增加一道贴近编码上下文的安全反馈机制。
开始体验 Qoder Security
选择一个与日常开发最接近的场景,在 Qoder Desktop 或 Qoder CLI 中输入本文提供的提示词。功能实现完成后执行 /security-scan,观察 Qoder Security 是否能够定位风险、呈现传播路径,并协助完成修复与复验。
- 查看 CLI 如何使用 Qoder Security:Qoder CLI Security
- 查看 Desktop 如何使用 Qoder Security:Qoder Desktop Security