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>
53 lines
2.0 KiB
Markdown
53 lines
2.0 KiB
Markdown
# 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`
|