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>
2.0 KiB
2.0 KiB
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)
- 上传文件无认证 — 医疗文档公开可访问,合规风险极高
- SQL 注入(plugin engine
load_plugin_config)— 改用参数化查询 - 小程序 .env 未加入 .gitignore — 含弱加密密钥,可能意外泄露
- 组织/部门/岗位级联删除缺失 — 软删除后数据完整性破坏
- 统计报表 500 — PostgreSQL NUMERIC vs Rust f64 类型不匹配
模块健康度
| 模块 | 评级 | 核心问题 |
|---|---|---|
| 用户/权限 | 🟢 | 基本可用,email 验证偏松 |
| 组织架构 | 🔴 | 级联删除全部缺失 |
| 工作流 | 🔴 | 大量功能未实现(ServiceTask/claim/deprecate/timeout) |
| 消息 | 🟡 | 无实时推送,模板/偏好功能半成品 |
| 患者管理 | 🟢 | 基本可用,细节问题 |
| 预约排班 | 🟢 | 正常 |
| 随访咨询 | 🟡 | 患者 UUID 显示 |
| 积分文章 | 🟢 | 正常 |
| 统计报表 | 🔴 | 500 错误 |
| 插件系统 | 🟡 | SQL 注入需修,其他防护好 |
| 系统设置 | 🟢 | 基本可用 |
| 小程序 | 🟡 | .env 安全风险,加密密钥弱 |
下一步
- 修复 9 个 P0(预计 3-5 天)— 安全和数据完整性
- 修复高优 P1(预计 1 周)— 统计报表/实时推送/加密密钥
- 补全工作流和消息模块(预计 2-3 周)— 功能闭环
- 小程序安全加固(预计 3 天)— .gitignore/密钥/urlCheck
- 提升前端测试覆盖率(持续)
报告文件
- 详细报告:
plans/audit-report-2026-04-26.md - 本摘要:
plans/audit-summary-2026-04-26.md