Files
Nexus/docs/audit/2026-06-01-bug-audit.md
T
Your Name a20cefcfbd docs: 审计+changelog 全站bug审查修复
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-01 11:40:23 +08:00

3.9 KiB

审计记录:全站 bug 审查修复 (前端9项 + 后端5项)

审计信息

  • 日期: 2026-06-01
  • 审计人: Claude (AI)
  • 触发原因: 全站巡检 bug 审查

审计范围

文件 变更类型 状态
frontend/src/App.vue 1行导入修复 ☑ 已审
frontend/src/pages/LoginPage.vue TOTP流程+锁定倒计时 ☑ 已审
frontend/src/pages/ServersPage.vue domain端口污染修复 ☑ 已审
frontend/src/pages/PushPage.vue Set索引修复 ☑ 已审
frontend/src/pages/SettingsPage.vue 类型转换修复 ☑ 已审
frontend/src/api/index.ts 删除重复定义 ☑ 已审
frontend/src/pages/TerminalPage.vue 路径验证正则 ☑ 已审
frontend/src/composables/useWebSocket.ts 连接泄漏修复 ☑ 已审
server/api/websocket.py redis.keys→scan_iter ☑ 已审
server/application/services/auth_service.py TTL重置修复 ☑ 已审
server/api/servers.py 并发session lock ☑ 已审
server/api/settings.py 弃用API修复 ☑ 已审

审计8步结果

Step 1: 登记

commit 6183047: fix: 全站 bug 审查修复 (前端9项 + 后端5项)

Step 2: 全文Read

所有12个文件逐行审读完毕

Step 3: 规则扫描H

H# 规则 文件 说明
H1 硬编码密钥 全部 - 无命中
H2 f-string拼SQL 全部 - 无命中
H3 静默吞错 全部 - 无新增空catch
H4 未验证输入拼shell 全部 - 无命中
H5 明文密码前端 全部 - 无命中
H6 XSS 全部 - 无新增v-html
H7 JWT保护 全部 - 无新增未保护端点
H8 审计日志 全部 - 无新增CUD操作

Step 4: Closure表

H# 判定 依据
H1-H8 无命中 本次修复均为bug修复,未新增端点/功能/密钥/XSS风险

Step 5: 入口表

无新增入口。本次修复不改变API接口。

Step 6: 输入→Sink

  • SettingsPage 数字转换: 正则 /^\d+(\.\d+)?$/ 匹配纯数字字符串 → Number(val) → 安全(仅转数字字符串为数字)
  • TerminalPage 路径正则: /^[^\x00-\x1f\x7f"']+$/.test(p) → 白名单排除控制字符和引号 → 安全
  • PushPage Set取值: selectedIds.value.values().next().value → 标准 ES6 迭代器 → 安全

Step 7: 归类

frontend/src/App.vue                      1行修改   0H  0FINDING
frontend/src/pages/LoginPage.vue          15行修改  0H  0FINDING
frontend/src/pages/ServersPage.vue        1行修改   0H  0FINDING
frontend/src/pages/PushPage.vue           1行修改   0H  0FINDING
frontend/src/pages/SettingsPage.vue       6行修改   0H  0FINDING
frontend/src/api/index.ts                 -4行删除  0H  0FINDING
frontend/src/pages/TerminalPage.vue       1行修改   0H  0FINDING
frontend/src/composables/useWebSocket.ts  5行修改   0H  0FINDING
server/api/websocket.py                   3行修改   0H  0FINDING
server/application/services/auth_service.py 4行修改 0H  0FINDING
server/api/servers.py                     4行新增   0H  0FINDING
server/api/settings.py                    3行修改   0H  0FINDING
──────────────────────────────────────────────────────────
总计                                      0H  0FINDING

Step 8: DoD

  • 无新增硬编码密钥
  • 无新增f-string拼SQL
  • 无新增空catch
  • 无新增XSS风险
  • 无新增未保护端点
  • SettingsPage 数字转换仅对纯数字字符串生效
  • TerminalPage 路径验证排除控制字符和引号
  • servers.py db_lock 使用 asyncio.Lock 正确序列化并发 commit

FINDING 列表

结论

☑ 审计通过,0 FINDING,可部署