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,175 @@
# ZJPB v2.3.0 快速部署指南
> 3步完成部署5分钟上线
---
## 📦 版本信息
- **版本**: v2.3.0
- **日期**: 2025-12-31
- **核心**: 新闻准确性优化
---
## ⚡ 快速部署3步
### 第1步拉取代码
```bash
cd /opt/1panel/apps/zjpb
./manage.sh stop
git pull origin master
```
### 第2步数据库迁移
```bash
source venv/bin/activate
python migrate_news_keywords.py
```
### 第3步重启应用
```bash
./manage.sh restart
./manage.sh status
```
**部署完成!**
---
## ✅ 快速验证
### 1. 后台验证1分钟
```
1. 访问http://your-domain.com/admin/login
2. 进入:网站管理 → 编辑任意网站
3. 检查:是否有"新闻关键词"字段
```
### 2. 前台验证1分钟
```
1. 访问http://your-domain.com/site/xxxxxxxx
2. 滚动:到"相关新闻"模块
3. 检查:是否有"获取最新资讯"按钮
```
---
## 🎯 核心功能
### 1. 新闻关键词设置
**后台操作**
```
网站管理 → 编辑 → 新闻关键词 → 输入"ChatGPT" → 保存
```
**效果**
- 搜索更精准
- 避免名称混淆
- 提高相关性
### 2. 前台手动刷新
**用户操作**
```
详情页 → 相关新闻 → 点击"获取最新资讯" → 等待刷新
```
**效果**
- 获取最新5条新闻
- 自动去重
- 1-2秒完成
---
## 🔧 关键词设置技巧
### 推荐设置
| 网站名称 | 推荐关键词 | 说明 |
|---------|-----------|------|
| ChatGPT | `ChatGPT` | 官方品牌名 |
| GitHub Copilot | `GitHub Copilot` | 完整产品名 |
| Claude | `Claude AI` | 添加AI避免混淆 |
| 文心一言 | `文心一言` | 中文全称 |
### 避免设置
`AI``工具``助手` - 过于宽泛
`聊天机器人` - 不够精准
`GPT` - 会匹配所有GPT相关
---
## 🐛 问题速查
### 问题1后台没有新字段
```bash
# 检查代码
grep "news_keywords" app.py
# 清缓存重启
./manage.sh restart
```
### 问题2刷新按钮不显示
```bash
# 检查模板
grep "refresh-news-btn" templates/detail_new.html
# 强制刷新浏览器Ctrl + F5
```
### 问题3刷新失败
```bash
# 检查API配置
grep "BOCHA_API_KEY" .env
# 如未配置,添加:
echo "BOCHA_API_KEY=sk-your-key" >> .env
./manage.sh restart
```
---
## 📊 变更文件
| 文件 | 说明 |
|------|------|
| `models.py` | 添加字段 |
| `migrate_news_keywords.py` | 迁移脚本 |
| `app.py` | 后台+API |
| `utils/news_searcher.py` | 搜索逻辑 |
| `templates/detail_new.html` | 刷新按钮 |
---
## 🔄 回滚(如需要)
```bash
cd /opt/1panel/apps/zjpb
./manage.sh stop
git reset --hard HEAD~1 # 回到上一版本
./manage.sh start
```
---
## 📚 完整文档
详细信息请查看:`DEPLOY_v2.3.0.md`
---
**快速指南版本**: v1.0
**部署时间**: 约5分钟
**难度**: ⭐ 简单