Commit Graph

6 Commits

Author SHA1 Message Date
OP
012de577d7 fix: 统一首页和分析页面的导航栏样式
- analysis.html header-inner 改用 gap 布局
- 添加 white-space:nowrap 防止标题换行
- 添加 flex-shrink:0 防止元素被挤压
- 两个页面的导航栏现在完全一致
2026-06-28 23:43:06 +08:00
OP
2d91e73063 fix: 修复导航栏布局,确保导航可见
- header-inner 改用 gap 替代 space-between
- h1/nav-tabs/header-right 都设置 flex-shrink:0
- 确保三个元素不会被挤压
2026-06-28 23:41:25 +08:00
OP
1bb826e7ac feat: 新增数据分析页面
- 添加导航栏:首页(原有功能)+ 分析(新页面)
- 分析页面包含 5 个专业图表:
  - 借款总额 vs 已还总额(环形图)
  - 债权人分布(柱状图)
  - 还款方式分布(环形图)
  - 利率分布(柱状图)
  - 月度还款计划(柱状图)
- 使用 Chart.js 图表库
- 首页和分析页面共享导航栏样式
2026-06-28 23:38:47 +08:00
OP
75875606a2 fix: 修复 admin.html 通知函数引号嵌套错误导致 JS 解析失败
- renderNotifList/renderNotifBadge/loadNotifications 等函数使用了双引号嵌套
- 导致整个 script 块解析失败,所有函数(包括 loadStats/loadGroups/loadUsers)无法执行
- 统一改为单引号,修复管理后台数据不显示和退出按钮失效问题
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
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