代
代码安全扫描
作者:鹿Sir开发工具v1
在 AI 编码流程中执行代码安全扫描与修复闭环。当用户完成功能开发、准备提交/推送代码、需要安全审计、或提到安全扫描、漏洞检测、代码安全时触发。覆盖 SQL注入、命令注入、路径穿越、SSRF 等风险类型。触发词:安全扫描、漏洞检测、代码安全、SSRF、注入风险。
下载量
258
点赞
65
价格
免费
技能文档
--- name: qoder-security-scan title: 代码安全扫描 category: 开发工具 description: 在 AI 编码流程中执行代码安全扫描与修复闭环。当用户完成功能开发、准备提交/推送代码、需要安全审计、或提到安全扫描、漏洞检测、代码安全时触发。覆盖 SQL注入、命令注入、路径穿越、SSRF 等风险类型。触发词:安全扫描、漏洞检测、代码安全、SSRF、注入风险。 --- # Qoder Security 代码安全扫描技能 在 AI 辅助编码过程中,将安全风险检测前移到编码阶段,通过三层扫描体系(静态检查/语义分析/跨文件数据流追踪)识别潜在漏洞,并完成"发现→理解→修复→复验"闭环。 ## 适用场景 - 功能开发完成后,提交或推送代码前的安全检查 - 涉及外部输入(URL、文件上传、用户参数)的接口开发 - 版本发布前的整仓安全审计 - 代码评审中需要安全视角补充时 - 修复已知漏洞后需要复验时 ## Steps ### 1. 确认安全能力已启用 进入 设置 → 安全 → 扫描层级,确认三层开关状态: - L1 静态检查:建议常开(免费,代码写入后自动执行) - L2 轻量扫描:任务收尾时执行(~5 Credits/500行) - L3 深度扫描:提交/推送前执行(~20 Credits/500行) ### 2. 选择扫描层级与范围 根据开发阶段选择: - 编码中:L1 自动运行,无需操作 - 一轮修改完成:执行 L2 ``` /security-scan 帮我执行轻量扫描 ``` - 提交/推送前:执行 L3 ``` /security-scan 帮我执行深度扫描并推送 ``` - 指定目录: ``` /security-scan 扫描 src/api 目录 ``` - 指定提交范围: ``` /security-scan 扫描最近 3 个提交 ``` - 整仓审计(≤1万行): ``` /security-scan 跑一次全量扫描 /canvas 生成可视化安全报告 ``` ### 3. 审阅扫描结果 扫描结果包含: - 风险级别(Severity) - 风险位置(文件 + 行号) - 数据传播路径(输入来源 → 中间处理 → 敏感操作) - 判断依据(为何风险可能成立) - CWE/OWASP 分类 - 修复建议 重点审阅: - 输入来源是否确实可控(外部输入 vs 内部常量) - 数据流路径是否完整到达危险点 - 自研防护(净化函数)是否覆盖所有变体 ### 4. 确认修复方案 - 审阅 Agent 给出的修复建议 - 确认修复保留业务目标(不破坏功能) - 让 Agent 执行修复,或手动调整 - 修复改动在"审查"面板展示,逐条确认 ### 5. 回归测试 运行项目原有测试套件,确认功能未受破坏: ```bash # 示例 mvn test # Java npm test # Node.js pytest # Python cargo test # Rust ``` ### 6. 复验闭环 再次执行同层级扫描,确认同一路径的同类风险已消除: ``` /security-scan 帮我执行轻量扫描 ``` 若仍有残留,重复步骤 3-6 直到闭环。 ## 风险类型与修复模式速查 ### SQL 注入 - 检测要点:区分已参数化的值与动态拼接的标识符(表名/列名) - 修复模式:值用参数化查询,标识符用白名单校验 - 易遗漏:order by 参数、LIMIT 参数、动态表名 ### 命令注入 - 检测要点:用户输入是否拼入 shell 命令字符串 - 修复模式:结构化参数传递(数组形式),禁止字符串拼接 - 易遗漏:FFmpeg/ImageMagick 等工具的"可选参数" ### 路径穿越 - 检测要点:文件名是否经过 canonicalize 后再校验 - 修复模式:约束文件名 + 规范化后验证目标路径仍在预期目录内 - 易遗漏:仅过滤 `../` 字符串不够,需处理编码变体 ### SSRF(服务器端请求伪造) - 检测要点:接口接收 URL 后服务端发起请求 - 修复模式:协议白名单 + 禁止内网地址(127.x/10.x/172.x/192.168.x) + 禁止重定向到内网 - 易遗漏:DNS rebinding、IPv6 回环、302 重定向链 ### 不安全反序列化 - 检测要点:外部数据进入 YAML/pickle/JSON 解析接口 - 修复模式:使用 safe_load 等安全 API,限制可反序列化类型 - 易遗漏:响应体也被视为外部输入 ### 敏感信息泄露 - 检测要点:硬编码密钥、日志输出敏感字段、错误信息暴露内部结构 - 修复模式:环境变量/密钥管理服务、日志脱敏、统一错误响应 ## 整仓审计报告结构 全量扫描 + /canvas 生成的报告包含: - 扫描目标与完成时间 - 修复状态汇总(已修复/待处理/已忽略) - 问题表格:Severity / Title / CWE·OWASP / Location - 每个问题的详细描述、相关代码片段、修复指引 ## Pitfalls - 单次 `/security-scan` 最多支持 1 万行代码,大项目必须按目录或提交区间拆分,否则扫描不完整 - L2/L3 消耗 Credits,耗尽后扫描阻塞;大项目整仓审计前评估额度(L3 约 20 Credits/500行) - 不同产品版本、项目状态和会话上下文可能影响扫描结果,不要假设结果完全一致 - 该能力不覆盖越权访问、鉴权缺陷和业务逻辑漏洞(高度依赖业务上下文),这些仍需人工审查 - 不能替代代码评审、渗透测试、SAST、SCA 和专业安全审计,是补充而非替代 - 修复建议必须由开发者审核确认,不可盲目全部接受 - 只在本地或获得授权的隔离环境操作,不将扫描示例修改直接用于生产 - 自研净化函数"看起来安全"不等于真的安全——L3 深度扫描的价值正在于验证防护是否完整覆盖所有变体 ## Verification 1. 扫描结果是否清楚呈现风险来源和传播路径(而非仅标记位置) 2. 修复后业务功能是否保持完整(回归测试通过) 3. 复验扫描确认同一路径同类风险已消除 4. 修复未引入新的安全问题(修复本身不产生新漏洞) 5. 整仓审计时对照 CWE/OWASP 分类确认风险覆盖完整性
使用说明
# 代码安全扫描 AI 编码流程中的三层安全扫描与修复闭环。 ## 使用 ``` /qoder-security-scan ``` ## 工作原理 开发完成后执行静态检查/语义分析/深度扫描,发现→修复→复验。 三层扫描体系覆盖 SQL 注入、SSRF、路径穿越等六大风险类型。
支持平台:Qoder · QoderWork · Claude · Codex 等 AI 编程助手