OP
|
a49a5a7cff
|
build: 添加 x86 和 arm64 双架构部署包
- 构建 x86 (linux/amd64) backend 和 frontend 镜像
- 导出 arm64 和 x86 两种架构的 tar.gz 镜像包
- 添加 docker-compose.x86.yml 和 docker-compose.arm64.yml
- install.sh 自动检测架构并加载对应镜像
- 部署包约 200MB (backend 75M x2 + frontend 24M x2 + postgres 106M)
|
2026-06-28 23:07:06 +08:00 |
|
OP
|
75875606a2
|
fix: 修复 admin.html 通知函数引号嵌套错误导致 JS 解析失败
- renderNotifList/renderNotifBadge/loadNotifications 等函数使用了双引号嵌套
- 导致整个 script 块解析失败,所有函数(包括 loadStats/loadGroups/loadUsers)无法执行
- 统一改为单引号,修复管理后台数据不显示和退出按钮失效问题
v2.2
|
2026-06-28 23:01:28 +08:00 |
|
OP
|
498d29dfa9
|
security: 全面安全加固 v2.1
严重修复:
- C1: JWT密钥生成64字节随机字符串替代硬编码占位符
- C2: 数据库密码改为随机强密码,移除宿主机端口映射
- C3: 管理员默认密码改为强密码
高危修复:
- H1: 移除数据库54326端口映射,仅内部网络访问
- H3: 添加X-Frame-Options/CSP/XSS-Protection等安全头
- H4: 前端所有innerHTML拼接处添加escapeHtml转义防XSS
- H5: SMTP密码在API响应中脱敏显示
- H6: 债务列表接口添加用户隔离,普通用户只能看自己的数据
- H7: 债务详情/计划/记录接口添加归属校验
- H8: 账户级暴力破解锁定(5次失败锁定5分钟)
- H9: 速率限制数据增加过期清理机制防内存泄漏
中危修复:
- M1: 注册/重置密码接口添加后端密码强度校验(最少8位)
- M4: 添加全局异常处理器,500错误不再暴露堆栈
- M5: Docker容器改为非root用户运行
- M6: 添加.dockerignore排除pyc和敏感文件
- M7: 管理员操作写入审计日志
- M8: CORS限制为实际使用的HTTP方法和头
其他:
- Nginx隐藏版本号(server_tokens off)
- 管理员角色修改添加枚举校验
- 密码重置验证码接口返回统一错误信息
|
2026-06-28 22:46:24 +08:00 |
|
OP
|
ead41e2b8e
|
fix: 修复注册接口和 refresh 接口账号枚举漏洞
- /register: 已存在账号返回相同成功消息,不再暴露账号是否存在
- /refresh: 将 'User not found' 改为 'Token 无效'
- 防止攻击者通过错误提示枚举有效账号
|
2026-06-28 22:37:18 +08:00 |
|
OP
|
4f9a5af306
|
fix: 修复找回密码接口账号枚举漏洞
- verify-reset-code: 将'账号不存在'改为'验证码错误或已过期'
- reset-password: 将'账号不存在'改为'验证码错误或已过期'
- 防止攻击者通过错误提示枚举有效账号
|
2026-06-28 22:35:21 +08:00 |
|
OP
|
ffca168dbe
|
v2.1: 新增通知提醒功能和安全增强
功能:
- 通知提醒系统: 还款日提醒、逾期提醒、系统消息横幅、登录时通知
- 通知中心UI: 铃铛图标 + 下拉列表 + 未读徽章
- 定时任务: APScheduler 每小时检查即将到期的还款
- 邮件通知: SMTP 发送还款提醒和安全警告
- 异常登录通知: 3/5/10次失败触发网页和邮件通知
安全:
- 登录安全告警: 异常登录次数达到阈值时发送通知
- 密码重置链接: 一次性使用, 5分钟有效期
- 登录频率限制: IP级和账户级限制
技术:
- 后端: FastAPI + SQLAlchemy + PostgreSQL
- 前端: 纯 HTML/CSS/JS
- 部署: Docker Compose (新增 build 配置)
|
2026-06-28 18:06:56 +08:00 |
|