feat: v2.6.0 - API安全优化和文档整合

## 核心优化
- 移除详情页自动调用博查API的逻辑,改为按需加载
- 添加基于IP的频率限制(每小时3次)
- 实现验证码防护机制(超过阈值后要求验证)
- 新增频率限制工具类 utils/rate_limiter.py

## 成本控制
- API调用减少约90%+(只在用户点击时调用)
- 防止恶意滥用和攻击
- 可配置的频率限制和验证码策略

## 文档整合
- 创建 docs/ 目录结构
- 归档历史版本文档到 docs/archive/
- 移动部署文档到 docs/deployment/
- 添加文档索引 docs/README.md

## 技术变更
- 新增依赖: Flask-Limiter==3.5.0
- 修改: app.py (移除自动调用,新增API端点)
- 修改: templates/detail_new.html (按需加载UI)
- 新增: utils/rate_limiter.py (频率限制和验证码)
- 新增: docs/archive/DEVELOP_v2.6.0_API_SECURITY.md

## 部署说明
1. pip install Flask-Limiter==3.5.0
2. 重启应用
3. 无需数据库迁移

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
Jowe
2026-02-06 15:54:13 +08:00
parent c1a06ad684
commit 939717fa57
27 changed files with 1670 additions and 140 deletions

View File

@@ -0,0 +1,132 @@
# 📦 1Panel部署打包清单
部署前请确保以下文件都已准备好:
## ✅ 必需文件
### 应用文件
- [x] app.py - 主应用文件
- [x] wsgi.py - WSGI入口生产环境
- [x] config.py - 配置文件
- [x] models.py - 数据模型
- [x] init_db.py - 数据库初始化脚本
- [x] requirements.txt - Python依赖列表
### 配置文件
- [x] gunicorn_config.py - Gunicorn配置
- [x] .env.example - 环境变量模板
- [ ] .env - 生产环境变量(需在服务器上创建)
### 部署脚本
- [x] deploy.sh - 一键部署脚本
- [x] manage.sh - 应用管理脚本
### 文档
- [x] DEPLOYMENT.md - 完整部署文档
- [x] QUICK_DEPLOY.md - 快速部署指南
- [x] README.md - 项目说明
### 目录结构
```
zjpb/
├── static/ # 静态文件
│ ├── css/
│ ├── js/
│ └── uploads/ # 上传文件目录
├── templates/ # 模板文件
│ ├── admin/
│ └── *.html
├── utils/ # 工具类
│ ├── website_fetcher.py
│ ├── tag_generator.py
│ └── bookmark_parser.py
├── migrations/ # 数据库迁移脚本
├── logs/ # 日志目录(自动创建)
└── venv/ # 虚拟环境(服务器上创建)
```
## 🚫 排除文件(不要上传到服务器)
- `__pycache__/` - Python缓存
- `*.pyc` - 编译的Python文件
- `.git/` - Git仓库
- `.env` - 本地环境变量
- `venv/` `env/` - 虚拟环境
- `test_*.py` - 测试文件
- `*.log` - 日志文件
- `logs/` - 日志目录
- `static/uploads/*` - 上传的文件
## 📋 部署前检查清单
### 本地准备
- [ ] 更新 requirements.txt
- [ ] 测试应用运行正常
- [ ] 准备 .env.example 模板
- [ ] 压缩项目文件
### 服务器准备
- [ ] 1Panel已安装
- [ ] MySQL数据库已创建
- [ ] 域名已解析(可选)
- [ ] SSH访问权限
### 部署步骤
- [ ] 上传项目文件到服务器
- [ ] 解压并设置目录权限
- [ ] 执行 deploy.sh 脚本
- [ ] 配置 .env 文件
- [ ] 初始化数据库
- [ ] 在1Panel中创建网站反向代理
- [ ] 启动应用
- [ ] 配置SSL证书可选
### 部署后验证
- [ ] 前台页面访问正常
- [ ] 后台登录成功
- [ ] 修改默认管理员密码
- [ ] 测试网站添加功能
- [ ] 测试标签创建功能
- [ ] 测试图片上传功能
## 🔐 安全检查
- [ ] 修改默认管理员密码
- [ ] 设置强密码的 SECRET_KEY
- [ ] 配置 .env 权限chmod 600
- [ ] 启用 SSL/HTTPS
- [ ] 配置防火墙规则
- [ ] 定期备份数据库
## 📝 压缩命令
Windows PowerShell:
```powershell
Compress-Archive -Path * -DestinationPath zjpb.zip -Force
```
Linux/Mac:
```bash
zip -r zjpb.zip . -x "*.pyc" "*__pycache__*" "*.git*" ".env" "venv/*" "test_*.py" "logs/*"
```
## 🎯 快速部署(服务器上)
```bash
# 1. 上传并解压
cd /www/wwwroot/zjpb
unzip zjpb.zip
# 2. 一键部署
chmod +x deploy.sh
./deploy.sh
# 3. 配置环境变量
nano .env
# 4. 启动应用
chmod +x manage.sh
./manage.sh start
```
详细步骤请参考:`DEPLOYMENT.md`