Files
hms/plans/audit-summary-2026-04-26.md
iven 83fe89cbcd
Some checks failed
CI / rust-check (push) Has been cancelled
CI / rust-test (push) Has been cancelled
CI / frontend-build (push) Has been cancelled
CI / security-audit (push) Has been cancelled
fix: 全系统审计问题修复 — 安全/数据完整性/功能缺陷/UX (Phase 1-5)
Phase 1 安全热修复:
- P0-1: /uploads 文件服务添加 JWT 认证中间件(支持 header + query param)
- P0-2: analytics/batch 路由从 public 移到 protected_routes
- P0-3: plugin engine SQL 注入修复(format! → 参数化查询)
- P0-new: stats_service compute_avg_field 字段白名单 + FLOAT8 类型转换

Phase 2 数据完整性:
- P0-4: 组织删除级联检查(添加部门存在性校验)
- P0-5: 部门删除级联检查(添加岗位 + 用户存在性校验)
- P0-8: workflow on_tenant_deleted 实现 5 实体批量删除
- P0-7: 并行网关 race condition 修复(consumed → completed 原子转换)

Phase 3 P1 后端 Bug:
- P1-12: plugin host 表名消毒(使用 sanitize_identifier)
- P1-10: workflow deprecated 状态转换(published → deprecated)
- P1-11: workflow 更新验证条件(nodes/edges 任一变化即验证)
- P0-9: 小程序 .gitignore 添加 .env/.env.*/日志
- P1-19: 小程序加密密钥替换为 64 字符强密钥

Phase 4 消息模块:
- P1-5: 通知偏好 GET 路由 + handler
- P1-4: 消息模板 update/delete CRUD + version
- P2-8: mark_all_read SQL 添加 version + 1
- P2-7: markAsRead 改为乐观更新 + 失败回滚

Phase 5 前端修复:
- P2-9: 通知面板点击导航到 /messages
- P2-1: 随访任务患者名批量 ID 解析(替代 UUID 显示)
- P2-5: AppointmentList 分离 patient_id/doctor_id 分别调用 API
- P2-17: PluginMarket installed 字段修正(name → id)
- P3-3: 路由标题 fallback 改为模式匹配(支持 :id 动态路径)
- P2-15: workflow updateDefinition 添加 version 字段
- P3-9: Kanban 版本使用记录实际 version
- P2-21: secure-storage 生产环境无密钥时阻止存储
- P3-11: destroyOnHidden → destroyOnClose
- P3-13: PendingTasks 深色模式 Tag 颜色适配

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-26 19:16:23 +08:00

2.0 KiB
Raw Permalink Blame History

HMS 审计摘要 — 一页纸

2026-04-26 | 全系统审计Web + 小程序)

总览

P0 P1 P2 P3 P4 合计
安全 4 2 2 8
数据完整性 5 2 1 8
功能缺失/缺陷 12 8 5 25
UX/代码质量 9 10 6 25
配置/运维 2 2 4
合计 9 18 22 15 6 72

必须立即修复Top 5

  1. 上传文件无认证 — 医疗文档公开可访问,合规风险极高
  2. SQL 注入plugin engine load_plugin_config)— 改用参数化查询
  3. 小程序 .env 未加入 .gitignore — 含弱加密密钥,可能意外泄露
  4. 组织/部门/岗位级联删除缺失 — 软删除后数据完整性破坏
  5. 统计报表 500 — PostgreSQL NUMERIC vs Rust f64 类型不匹配

模块健康度

模块 评级 核心问题
用户/权限 🟢 基本可用email 验证偏松
组织架构 🔴 级联删除全部缺失
工作流 🔴 大量功能未实现ServiceTask/claim/deprecate/timeout
消息 🟡 无实时推送,模板/偏好功能半成品
患者管理 🟢 基本可用,细节问题
预约排班 🟢 正常
随访咨询 🟡 患者 UUID 显示
积分文章 🟢 正常
统计报表 🔴 500 错误
插件系统 🟡 SQL 注入需修,其他防护好
系统设置 🟢 基本可用
小程序 🟡 .env 安全风险,加密密钥弱

下一步

  1. 修复 9 个 P0(预计 3-5 天)— 安全和数据完整性
  2. 修复高优 P1(预计 1 周)— 统计报表/实时推送/加密密钥
  3. 补全工作流和消息模块(预计 2-3 周)— 功能闭环
  4. 小程序安全加固(预计 3 天)— .gitignore/密钥/urlCheck
  5. 提升前端测试覆盖率(持续)

报告文件

  • 详细报告: plans/audit-report-2026-04-26.md
  • 本摘要: plans/audit-summary-2026-04-26.md