审计记录 — Monaco IDE 编辑器 + 文件管理增强
审计信息
- 日期: 2026-05-30
- 审计人: Claude (AI) + 用户确认
- 触发原因: Monaco 编辑器 + IDE 重构 + 文件管理增强
审计范围
| 文件 |
行数 |
状态 |
| web/app/files.html |
870 |
☑ 已审 |
| web/app/terminal.html |
831 |
☑ 已审 |
| web/app/servers.html |
1202 |
☑ 已审 |
审计8步结果
Step 1: 登记 ✅
Step 2: 全文Read ✅
Step 3: 规则扫描H — 30 项
Step 4: Closure表
| H-xx |
严重度 |
Closure |
说明 |
| H-01 |
MEDIUM |
FINDING→已修 |
esc() 加引号转义 |
| H-02 |
MEDIUM |
FINDING→已修 |
initialPath 路径白名单 |
| H-03 |
LOW |
FINDING→已修 |
doNewFile 文件名白名单 |
| H-04 |
N/A |
FALSE_POSITIVE |
WebSocket 认证完整 |
| H-05 |
N/A |
FALSE_POSITIVE |
JWT 保护完备 |
| H-06 |
N/A |
FALSE_POSITIVE |
innerHTML XSS 已防护 |
| H-07 |
- |
ACCEPTED_RISK |
路径穿越(管理员上下文) |
| H-08 |
LOW |
FINDING |
Monaco CDN 无 SRI(已知限制) |
| H-09 |
N/A |
FALSE_POSITIVE |
敏感数据脱敏正确 |
| H-10 |
N/A |
FALSE_POSITIVE |
URL 参数 parseInt 安全 |
| H-11 |
N/A |
FALSE_POSITIVE |
JWT 天然 CSRF 免疫 |
| H-12 |
- |
ACCEPTED_RISK |
CSP 需 Nginx 层配置 |
| H-13 |
MEDIUM |
FINDING→已修 |
移除 modalTextarea 引用 |
| H-14 |
- |
FALSE_POSITIVE |
事件委托竞态合理 |
| H-15 |
N/A |
FALSE_POSITIVE |
选择状态一致 |
| H-16 |
N/A |
FALSE_POSITIVE |
边界检查完备 |
| H-17 |
LOW |
ACCEPTED_RISK |
Ctrl+S 并发保存 |
| H-18 |
- |
ACCEPTED_RISK |
预加载空 catch 合理 |
| H-19 |
N/A |
FALSE_POSITIVE |
Monaco 防重复加载正确 |
| H-20 |
LOW |
FINDING→已修 |
initialPath 仅首次连接 cd |
| H-21 |
LOW |
ACCEPTED_RISK |
esc() DOM 操作频繁 |
| H-22 |
N/A |
FALSE_POSITIVE |
预加载有上限保护 |
| H-23 |
LOW |
ACCEPTED_RISK |
Monaco 内存 |
| H-24 |
LOW |
ACCEPTED_RISK |
全量重渲染 |
| H-25 |
N/A |
FALSE_POSITIVE |
innerHTML 批量赋值正确 |
| H-26 |
MEDIUM |
FINDING→已修 |
esc() 跨文件一致性 |
| H-27 |
N/A |
FALSE_POSITIVE |
_modalResolve 正确 |
| H-28 |
LOW |
ACCEPTED_RISK |
modal 关闭状态清理 |
| H-29 |
N/A |
FALSE_POSITIVE |
esc() HTML 上下文安全 |
| H-30 |
LOW |
FINDING→已修 |
esc() 注释更新 |
Step 5: 入口表 ✅
Step 6: 输入→Sink ✅
Step 7: 归类
Step 8: DoD ✅
FINDING 列表
| 编号 |
严重度 |
描述 |
修复方式 |
| H-01 |
MEDIUM |
esc() onclick XSS |
加 ' " 转义 |
| H-02 |
MEDIUM |
initialPath 命令注入 |
路径白名单正则 |
| H-03 |
LOW |
doNewFile 文件名 |
白名单正则 |
| H-08 |
LOW |
Monaco CDN 无 SRI |
ACCEPTED_RISK(版本锁定) |
| H-13 |
MEDIUM |
modalTextarea null 引用 |
移除 dead code |
| H-20 |
LOW |
initialPath 全标签 cd |
_initialCdSent 标志 |
| H-26 |
MEDIUM |
esc() 不一致 |
统一为含引号转义版本 |
| H-30 |
LOW |
esc() 注释 |
更新注释 |
结论
☑ 审计通过,8 FINDING 全部已处理(7 修复 + 1 ACCEPTED_RISK),0 遗留