498d29dfa9f333f208583e7c33acbc377fd7a4d9
严重修复: - 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) - 管理员角色修改添加枚举校验 - 密码重置验证码接口返回统一错误信息
债务管理系统
个人/小团队债务记录、跟踪和管理平台。
技术栈
- 前端: 纯 HTML/CSS/JS(无框架依赖)
- 后端: Python FastAPI + SQLAlchemy (async)
- 数据库: PostgreSQL 15
- 部署: Docker Compose
功能
前台
- 用户注册/登录(JWT 双 token)
- 借款管理:CRUD + 分组展示 + 一键还款
- 月度还款计划:按月汇总 + 复选框标记已还
- 支持:等额本息、等额本金、先息后本
- 利率/总利息互算
- 数据导入/导出(CSV)
- 修改密码
后台
- 用户管理(审批/禁用/启用/删除/重置密码)
- 用户组管理(同组共享数据)
- 系统数据总览
快速开始
# 解压项目
tar -xzf debt-manager.tar.gz
cd debt-manager
# 启动所有服务
docker compose up -d
# 访问
# 前台: http://localhost:806
# 后台: http://localhost:806/admin.html
# API文档: http://localhost:8000/docs
默认账户
| 账号 | 密码 | 角色 |
|---|---|---|
| admin | admin123 | 管理员 |
| test | test123 | 用户 |
端口说明
| 服务 | 端口 | 说明 |
|---|---|---|
| 前端 | 806 | 用户界面 |
| 后端 | 8000 | API接口 |
| 数据库 | 54326 | PostgreSQL |
项目结构
debt-manager/
├── backend/ # FastAPI 后端
│ ├── app/
│ │ ├── api/ # API 路由
│ │ ├── core/ # 配置、数据库、认证
│ │ ├── models/ # SQLAlchemy 模型
│ │ ├── schemas/ # Pydantic 模型
│ │ └── services/ # 业务逻辑
│ └── Dockerfile
├── frontend/ # 前端页面
│ ├── index.html # 主页面
│ ├── admin.html # 管理后台
│ └── Dockerfile
├── docker-compose.yml
├── .env
└── DEPLOY.md # 部署指南
Description
Languages
HTML
59%
Python
35.8%
Shell
5%
Dockerfile
0.2%