Files
Nexus/.cursor/rules/audit-line-review.mdc
T
2026-07-08 22:31:31 +08:00

67 lines
2.5 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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 行,填 ClosureSAFE / FINDING + 行号 + 理由)
5. API/WS 文件:写入口表(方法、路径、鉴权)
6. 标外部输入 → sinkSQL / 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 |