代码安全扫描

作者:鹿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、路径穿越等六大风险类型。

如何安装此技能?

访问技能市场,点击「安装」按钮,按提示将技能包放入 AI 编程助手的 skills 目录即可。

浏览技能市场

支持平台:Qoder · QoderWork · Claude · Codex 等 AI 编程助手