---
description: 安全/质量逐行走读审计 — Phase 2 closure 流程；禁止攻击面抽查冒充全量审计
globs:
  - server/**
  - web/app/**
  - web/agent/**
  - scripts/**
  - deploy/**
  - tests/**
---

# 逐行走读审计规则（Phase 2）

完整标准见：`standards/line-walk-audit-standard-v2.md`（权威）· Nexus SSOT：`docs/project/line-walk-audit-standard.md` · 转接索引：`docs/project/standards-transfer-package.md`

## 何时启用

用户要求「全量审计」「逐行审查」「走读」「Phase 2」「安全审计」时，**必须**遵守本规则，不得用攻击面 Top N 或子代理汇总代替。

## 强制流程（每文件 8 步）

1. 登记 `path`、语言、行数 N（`wc -l`）
2. **全文 Read** 至 EOF（可每 200 行分段；末段须覆盖 N）
3. 对该文件跑 `docs/project/line-walk-audit-standard.md` §4 全部适用规则 → 命中列表 H
4. 对 H **每一条** Read ±15 行，填 Closure（SAFE / FINDING + 行号 + 理由）
5. API/WS 文件：写入口表（方法、路径、鉴权）
6. 标外部输入 → sink（SQL / shell / 文件 / innerHTML / 出站 HTTP）
7. 八类归类：BUG / VULN / STYLE / RISK / PERF / UX / EXT / OPT
8. 满足 DoD 后标「逐行完成 ✓」

**单会话上限**：最多 **5 个文件** 完成 8 步。

## DoD（缺一不可）

- `len(H) == Closure 行数`（H=0 须写明「规则零命中」）
- Read 覆盖 `1..N`（报告写明 N 与 Read 范围）
- 每条 FINDING 含 **`文件:行号`**
- 交付 `docs/reports/audit-phase-2*-line-walk.md`（含 Closure **全表**，含 SAFE）

## 命令拼接（高频漏报）

- `f"{key}={shlex.quote(value)}"` **不等于**安全：须 `shlex.quote(f"{key}={value}")` 或 argv 不经 shell
- `ls`/`find` 输出拼进 `cp`/`rm` 须 **白名单 + shlex.quote**
- `exec_ssh_command` / `conn.run(command)` 默认经远程 shell

## 禁止

- 无行号的 FINDING
- 「已审计 ✓」无 Closure 表
- 单回复声称整库 `server/` 或全部 `web/` 完成
- 子代理只出 Top 15 不落行号
- 同一任务混审计与改代码（除非用户明确要求）

## 严重度（复查 KPI）

- **P0**：未授权 RCE、IDOR Shell、仓库内生产密钥等
- **P1**：需认证后的命令注入、XSS、密钥回读等
- P0 漏报 -100 / P1 漏报 -50（用户复查约定）

## 报告路径

| 用途 | 路径 |
|------|------|
| 标准 SSOT | `docs/project/line-walk-audit-standard.md` |
| 批次产出 | `docs/reports/audit-phase-2{a-f}-line-walk.md` |
| Phase 1 参考 | `.cursor/plans/nexus_全面代码审计_a33e6fc2.plan.md` §0–§8 |
