Files
Nexus/docs/archive/audits/2026-06-04-delta/audit-delta-2026-06-04-waveD4.md
T
2026-07-08 22:31:31 +08:00

3.1 KiB
Raw Blame History

Phase 1 Delta 审计 — Wave D4(前端 Push

日期: 2026-06-04
范围: Code Review 后 push 页 composables + 组件
标准: standards/line-walk-audit-standard-v2.md 8 步

登记

# 文件 语言 行数 N Read 范围
1 frontend/src/composables/push/usePushForm.ts TS 101 1101 全文
2 frontend/src/composables/push/usePushPreview.ts TS 104 1104 全文
3 frontend/src/composables/push/usePushProgress.ts TS 294 1294 全文
4 frontend/src/components/push/PushZipUpload.vue Vue 51 151 全文
5 frontend/src/components/push/PushServerGrid.vue Vue 110 1110 全文

关联(本波未单独登记): usePushPage.ts 仅编排 lifecycle,无独立 sink。

Step 3 — 规则扫描 H(摘要)

文件 H 命中
usePushForm.ts H-Auth, H-Upload, H-Path
usePushPreview.ts H-Auth, H-Path
usePushProgress.ts H-Auth, H-WS, H-Batch
PushZipUpload.vue H-Upload, H-XSS
PushServerGrid.vue H-XSS

入口表(前端 → API

调用方 方法 路径 鉴权
usePushForm POST multipart /sync/upload-zip http JWT
usePushPreview POST /sync/preview http JWT
usePushProgress POST /sync/files, /sync/cancel http JWT
usePushProgress WS /ws/sync?token= JWT query(已接受 RISK

Closure 表

H 文件:行号 判定 理由
H-Auth usePushForm.ts:65-67 SAFE @/api httpBearer JWT
H-Upload usePushForm.ts:52,57 RISK 客户端仅 .zip 后缀;服务端 ZIP slip/大小限制(D1
H-Path usePushForm.ts:69-72 SAFE source_path 来自服务端 upload-zip 响应
H-Path usePushForm.ts:38-40 SAFE target_path 必填;远程校验在 sync_v2
H-Auth usePushPreview.ts:28-38 SAFE preview POST JWT + server_id 参数化
H-Concurrency usePushPreview.ts:72-77 SAFE PREVIEW_CONCURRENCY=4 限流
H-Auth usePushProgress.ts:237-243 SAFE push POST JWT + batch_id
H-WS usePushProgress.ts:137-142 RISK query token;单人运维已接受
H-WS usePushProgress.ts:79-80 SAFE batch_id 过滤防串批
H-WS usePushProgress.ts:165-167 SAFE 4401 → forceLogout
H-Batch usePushProgress.ts:244-246 SAFE 服务端 batch_id 可覆盖客户端
H-Cancel usePushProgress.ts:194-209 SAFE cancel 带 batch_id
H-Timer usePushProgress.ts:261-275 SAFE 300s 安全超时 + dispose 清理
H-Secret usePushForm/Preview/Progress SAFE 无 localStorage 密码/密钥
H-XSS PushZipUpload.vue:22 SAFE {{ uploadedZip.name }} 文本插值
H-XSS PushServerGrid.vue:66-77 SAFE 无 v-html;状态 chip 文本插值
H-Upload PushZipUpload.vue:18 SAFE accept=".zip" + 父 composable 后缀检查

len(H)=17, Closure=17

FINDING

无 P0/P1 新 FINDING。

DoD

  • len(H) == Closure
  • 五文件全文 Read
  • 无 v-html / localStorage 凭据

验证

bash scripts/local_verify.sh — 全绿