Files
Nexus/docs/audit/2026-05-30-monaco-ide-editor.md
T
2026-05-31 02:08:31 +08:00

3.6 KiB

审计记录 — 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: 归类

web/app/files.html                  870行  12H  5FINDING → 0FINDING
web/app/terminal.html               831行   4H  2FINDING → 0FINDING
web/app/servers.html               1202行   1H  0FINDING
──────────────────────────────────────────────────────────────
总计                                  8 FINDING → 0FINDING (1 ACCEPTED_RISK H-08)

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 遗留