Files
Nexus/docs/archive/audits/2026-06-04-frontend-14p/audit-frontend-14p-2026-06-04-batch2.md
T

78 lines
2.0 KiB
Markdown
Raw Normal View History

# 前端 14 页深审 — Batch 2/3Scripts / Credentials / Schedules / Retries / Commands
**日期**: 2026-06-04
**标准**: 8 步逐行
## 登记
| # | 文件 | 行数 N | Read 范围 |
|---|------|--------|-----------|
| 1 | `frontend/src/pages/ScriptsPage.vue` | 535 | 1535 全文 |
| 2 | `frontend/src/pages/CredentialsPage.vue` | 400 | 1400 全文 |
| 3 | `frontend/src/pages/SchedulesPage.vue` | 295 | 1295 全文 |
| 4 | `frontend/src/pages/RetriesPage.vue` | 191 | 1191 全文 |
| 5 | `frontend/src/pages/CommandsPage.vue` | 168 | 1168 全文 |
## Step 3 — 逐文件 H
### ScriptsPage.vue (535)
| H | 行号 | 规则 |
|---|------|------|
| H1 | 358-390 | CRUD /scripts JWT |
| H2 | 415-419 | exec script_id + server_ids |
| H3 | 463-467 | quick command exec |
| H4 | 527-528 | poll timer cleanup |
### CredentialsPage.vue (400)
| H | 行号 | 规则 |
|---|------|------|
| H5 | 253-255 | GET 列表无密码 |
| H6 | 323-327 | encrypted_pw POST only |
| H7 | 306,340,357 | 编辑留空不改 |
| H8 | 346-347 | SSH 私钥提交时传输 |
### SchedulesPage.vue (295)
| H | 行号 | 规则 |
|---|------|------|
| H9 | 177 | cron 正则 `^[\d\s*/,\-]+$` |
| H10 | 173-189 | buildSchedulePayload 校验 |
| H11 | 263-267 | runNow → POST /sync/files |
### RetriesPage.vue (191)
| H | 行号 | 规则 |
|---|------|------|
| H12 | 129-134 | 客户端 filter(展示) |
| H13 | 146,160 | retry/delete JWT |
### CommandsPage.vue (168)
| H | 行号 | 规则 |
|---|------|------|
| H14 | 139-153 | 只读 command-logs / ssh-sessions |
| H15 | 50 | command 文本展示(后端已存) |
## Closure 表
| H | 判定 | 依据 |
|---|------|------|
| H1-H4 | SAFE/RISK | exec 走后端;H3 RISK 临时命令(后端 dangerous check |
| H5-H8 | SAFE | 无 localStorageAPI 脱敏 |
| H9-H11 | SAFE | cron/路径校验;sync JWT |
| H12-H13 | SAFE | 只读+操作 JWT |
| H14-H15 | SAFE | 只读审计视图 |
**len(H)=15, Closure=15**
## FINDING
无 P0/P1 新 FINDING。
## DoD
- [x] 5 页全文 Read
- [x] len(H)==Closure