2.8 KiB
2.8 KiB
审计记录 — servers.html 系统版本拆分 + 空字段隐藏
审计信息
- 日期: 2026-05-27
- 审计人: Claude (AI)
- 触发原因: UX改进 — 系统版本拆为发行版+内核平台,空字段隐藏不显示--
审计范围
| 文件 | 行数 | 状态 |
|---|---|---|
| web/app/servers.html | ~750 | ☑ 已审 |
审计8步结果
Step 1: 登记 ✅
改动:1) 系统版本拆为「发行版」(siOSRelease) + 「内核平台」(siPlatform) 两卡片;2) 描述/目标路径/认证方式空值时隐藏整行
Step 2: 全文Read ✅
全文读取 servers.html,确认所有改动点
Step 3: 规则扫描H
- H1:
sys.os_release/sys.platform— API返回的只读字符串,用textContent赋值,不经过innerHTML— ✅ 无XSS - H2:
s.description/s.target_path/s.auth_method— 同上,textContent赋值 — ✅ 无XSS - H3:
style.display控制行显隐 — DOM属性操作,非用户输入 — ✅ 无注入 - H4:
<code id="siTarget">— 使用语义标签包裹路径,textContent赋值 — ✅ 安全 - H5: grid从4列变5卡片,
lg:grid-cols-4自动换行 — ✅ 布局安全 - H6:
flex-wrap gap-x-6 gap-y-2替代grid-cols-3— 空值隐藏后自动重排 — ✅ 布局正确
Step 4: Closure表
| H | 判定 | 依据 |
|---|---|---|
| H1 | ✅ PASS | textContent不解析HTML,XSS不可能 |
| H2 | ✅ PASS | 同H1 |
| H3 | ✅ PASS | style.display值固定为空或none |
| H4 | ✅ PASS | code标签+textContent,安全 |
| H5 | ✅ PASS | 纯CSS布局,无安全影响 |
| H6 | ✅ PASS | flex-wrap自动适配,无安全问题 |
Step 5: 入口表
| 入口 | 类型 | 来源 |
|---|---|---|
| sysInfoGrid 显示 | DOM渲染 | API返回的system_info JSON |
| sysInfoMeta 显隐 | DOM渲染 | API返回的server字段 |
Step 6: 输入→Sink
sys.os_release→textContent→ DOM文本节点 — ✅ 安全(不经过innerHTML)sys.platform→textContent→ DOM文本节点 — ✅ 安全s.description→textContent→ DOM文本节点 — ✅ 安全s.target_path→textContent→ DOM文本节点(code标签)— ✅ 安全s.auth_method→ 条件判断 →textContent→ DOM文本节点 — ✅ 安全
Step 7: 归类
web/app/servers.html 750行 6H 0FINDING
────────────────────────────────────────
总计 6H 0FINDING
Step 8: DoD ✅
- ❌ 明文密码/密钥暴露? — 否
- ❌ 命令注入? — 否
- ❌ SQL注入? — 否(纯前端)
- ❌ XSS? — 否(全部textContent)
- ❌ 静默吞错? — 否
- ❌ 硬编码? — 否
- ✅ 所有FINDING已修复? — 0 FINDING
FINDING 列表
无
结论
☑ 审计通过,0 FINDING,可部署