# 安全说明 ## 当前安全边界 本项目当前处于后端化迁移期。登录认证、数据库 Session、工作台统计、报告、报告媒体关系、模板、字段库、模板图片资源、视频/关键帧文件、用户、部门模板授权、系统设置、签名文件、AI 对话和讯飞语音听写已接入后端 Session/API/代理,后端账号密码使用 Argon2 哈希。客户端权限只能防止普通误操作,不能抵御有意绕过。 ## 主要风险 - 开发模式 `localStorage.users` 仍保留兼容缓存和旧演示密码字段;生产构建默认关闭本地回退。 - AI Key 和讯飞语音密钥已由后端代理使用;普通用户读取系统设置时不会返回真实密钥。超级管理员仍可维护全局密钥,应避免把密钥写入源码、日志或文档。 - 旧版本源码中存在默认服务密钥痕迹,应视为已暴露;当前默认值已清空,但生产化前仍需轮换曾经暴露过的第三方密钥。 - 报告和模板 HTML 保存时已做服务端白名单清洗,但仍直接渲染 HTML,需要继续做绕过测试和打印兼容测试。 - 浏览器存储没有审计、备份、权限隔离和加密能力。 - 医疗病历数据属于敏感数据,不能直接用于公网生产。 ## 生产化建议 1. 完善服务端权限校验:报告、模板、用户、设置和文件 API 必须全部按角色、部门和作者强校验。 2. 增加服务端数据层:视频和关键帧文件已完成第一版 Files API,报告媒体引用已拆到 `ReportMedia`;字段库和模板图片资源已完成第一版 API。 3. 增加文件服务:报告图片、视频和关键帧后续可切换对象存储或院内文件服务;签名、模板图片、视频和关键帧已完成第一版后端文件资源。 4. 完善 API 代理:AI 和语音已完成第一版后端代理,后续应补限流、审计、错误分级和第三方调用隔离测试。 5. 增强 HTML 清洗:当前报告和模板保存已有第一版白名单过滤,后续需覆盖 AI 返回、导入文件、旧数据迁移和绕过测试。 6. 增强审计日志:当前登录、报告/模板/用户/设置/文件修改已有审计写入和查询页面;后续补打印/导出错误追踪和第三方代理调用摘要。报告导出不要求专门导出审计。 7. 增加数据备份与恢复:避免浏览器清理缓存造成业务数据丢失。