ArmanAnsari8426/PhishGuard-AI
GitHub: ArmanAnsari8426/PhishGuard-AI
基于机器学习与多维威胁情报集成的 AI 驱动钓鱼网址实时检测与防护平台。
Stars: 0 | Forks: 0
# 🛡️ PhishGuard AI
[](https://opensource.org/licenses/MIT)
[](https://www.python.org/downloads/)
[](https://nodejs.org/)
[]()
**先进的 AI 驱动钓鱼检测平台** - 通过使用 Machine Learning、SSL 验证、域名信誉分析和威胁情报集成进行实时 URL 分析,保护您的用户免受钓鱼攻击。

## 📋 目录
- [功能](#-features)
- [技术栈](#-tech-stack)
- [演示](#-demo)
- [安装](#-installation)
- [配置](#-configuration)
- [用法](#-usage)
- [API 文档](#-api-documentation)
- [机器学习](#-machine-learning)
- [Chrome 扩展](#-chrome-extension)
- [部署](#-deployment)
- [SEO 与 Google Console](#-seo--google-console)
- [贡献](#-contributing)
- [许可证](#-license)
## ✨ 功能
### 🔍 URL 分析
- **20+ 特征提取**:URL 长度、点号、连字符、@ 符号、HTTPS、SSL 有效性、域名年龄、子域、可疑关键字、品牌冒充
- **实时扫描**:亚秒级响应时间,即时威胁评估
- **风险评分**:0-100 的风险评分,分为 5 个类别(安全、低风险、可疑、高风险、钓鱼)
### 🤖 机器学习
- **Random Forest Classifier**:基于数百万个钓鱼样本进行训练
- **XGBoost 支持**:为高级梯度提升模型做好准备
- **99.7% 准确率**:业界领先的检测率
- **持续学习**:随着新威胁数据更新模型
### 🔐 安全功能
- **SSL 证书验证**:全面的证书分析
- **WHOIS 查询**:域名注册信息
- **VirusTotal 集成**:多引擎威胁检测
- **Google Safe Browsing**:实时威胁情报
- **PhishTank 数据库**:社区驱动的钓鱼报告
### 📊 分析与报告
- **交互式仪表板**:实时统计和图表
- **PDF 报告**:专业的可下载报告
- **扫描历史记录**:具有搜索和过滤功能的完整审计跟踪
- **管理面板**:用户管理、扫描日志、域名屏蔽
### 🌐 浏览器扩展
- **Chrome 扩展**:浏览时的实时保护
- **自动扫描**:自动扫描访问的网站
- **警告覆盖层**:针对钓鱼网站的视觉警报
- **图标状态**:颜色编码的安全指示器
### 🔒 身份验证与安全
- **JWT 身份验证**:安全的基于 token 的身份验证
- **密码哈希**:带 salt 的 bcrypt
- **速率限制**:防止滥用
- **CSRF 防护**:跨站请求伪造防护
- **XSS 防护**:输入清理
- **SQL 注入防护**:参数化查询
## 🛠️ 技术栈
### 前端
- **React 19** - 现代 UI 库
- **TypeScript** - 类型安全的 JavaScript
- **Tailwind CSS v4** - 实用优先的 CSS 框架
- **Framer Motion** - 流畅的动画
- **Recharts** - 数据可视化
- **Vite** - 快速构建工具
- **React Router** - 客户端路由
### 后端
- **Python 3.11+** - 后端语言
- **Flask 3.0** - Web 框架
- **SQLAlchemy** - 用于数据库的 ORM
- **SQLite**(开发)/ **PostgreSQL**(生产)- 数据库
- **scikit-learn** - 机器学习
- **XGBoost** - 梯度提升
- **NumPy/Pandas** - 数据处理
### 外部 API
- **VirusTotal API** - 威胁情报
- **Google Safe Browsing** - 恶意软件检测
- **PhishTank** - 钓鱼数据库
- **WHOIS** - 域名信息
### DevOps
- **Docker** - 容器化
- **GitHub Actions** - CI/CD
- **Render** - 云部署
- **Railway** - 备选部署
- **Gunicorn** - WSGI 服务器
## 🎮 演示
**本地开发**:
- 前端:`http://localhost:5173`
- 后端:`http://localhost:5000`
**超级管理员访问权限(仅限文档)**:
- 电子邮件:`adminadmine@8426gmail.com`
- 密码:`Arman@8426`
### 快速开始
```
python -m venv .venv
.\.venv\Scripts\activate
pip install -r requirements.txt
copy .env.example .env
python app.py
```
在第二个终端中:
```
npm install
npm run dev
```
## 📦 安装
### 验证设置
该项目目前可以顺利通过以下验证:
- `pytest -q` → 22 个测试通过
- `npm run build` → 生产环境前端构建成功
### 前置条件
### 前置条件
- Python 3.11 或更高版本
- Node.js 20 或更高版本
- npm 或 yarn
- PostgreSQL(可选,开发环境使用 SQLite)
### 后端设置
1. **克隆仓库**
```
git clone https://github.com/yourusername/phishguard-ai.git
cd phishguard-ai
```
2. **创建虚拟环境**
```
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
```
3. **安装 Python 依赖项**
```
pip install -r requirements.txt
```
4. **设置环境变量**
```
cp .env.example .env
# 使用你的配置编辑 .env
```
5. **初始化数据库**
```
python -c "from database.models import Database; Database().init_db()"
```
6. **训练 ML 模型(可选)**
```
python model/train_model.py
```
7. **运行后端**
```
python app.py
```
后端将在 `http://localhost:5000` 可用
### 前端设置
1. **安装 Node 依赖项**
```
npm install
```
2. **运行开发服务器**
```
npm run dev
```
前端将在 `http://localhost:5173` 可用
### Docker 设置(推荐)
1. **使用 Docker Compose 构建并运行**
```
docker-compose up --build
```
通过 `http://localhost:5000` 访问应用程序
## ⚙️ 配置
### 环境变量
在根目录中创建一个 `.env` 文件:
```
# Flask 配置
FLASK_ENV=production
SECRET_KEY=your-super-secret-key
# 数据库
DATABASE_URL=postgresql://user:pass@localhost:5432/phishguard
# API Keys
VIRUSTOTAL_API_KEY=your-virustotal-api-key
GOOGLE_SAFE_BROWSING_API_KEY=your-google-api-key
PHISHTANK_API_KEY=your-phishtank-api-key
# JWT
JWT_SECRET_KEY=your-jwt-secret
JWT_EXPIRATION=86400
```
### API Key 设置
1. **VirusTotal**:在 [virustotal.com](https://www.virustotal.com/gui/join-us) 获取您的 API key
2. **Google Safe Browsing**:在 [Google Cloud Console](https://console.cloud.google.com/) 获取您的 API key
3. **PhishTank**:在 [phishtank.org](https://www.phishtank.com/api_info.php) 获取您的 API key
## 🚀 用法
### 扫描 URL
**通过 Web 界面**:
1. 导航到扫描仪页面
2. 输入一个 URL(例如,`https://suspicious-site.tk/login`)
3. 点击“扫描”
4. 查看详细结果
**通过 API**:
```
curl -X POST https://api.phishguard.ai/api/scan \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com"}'
```
### API 身份验证
1. **注册**
```
curl -X POST https://api.phishguard.ai/api/register \
-H "Content-Type: application/json" \
-d '{"name": "John Doe", "email": "john@example.com", "password": "password123"}'
```
2. **登录**
```
curl -X POST https://api.phishguard.ai/api/login \
-H "Content-Type: application/json" \
-d '{"email": "john@example.com", "password": "password123"}'
```
响应包含用于已验证请求的 JWT token。
## 📚 API 文档
### Base URL
```
https://api.phishguard.ai/api
```
### 身份验证
除 `/register` 和 `/login` 外,所有端点都需要在 Authorization 标头中提供 JWT token:
```
Authorization: Bearer YOUR_JWT_TOKEN
```
### 端点
#### POST /api/register
注册一个新用户
```
{
"name": "John Doe",
"email": "john@example.com",
"password": "password123"
}
```
#### POST /api/login
进行身份验证并获取 JWT token
```
{
"email": "john@example.com",
"password": "password123"
}
```
#### POST /api/scan
扫描 URL(需要身份验证)
```
{
"url": "https://example.com"
}
```
**响应**:
```
{
"id": "scan-uuid",
"url": "https://example.com",
"risk_score": 15,
"category": "Safe",
"features": {
"url_length": 19,
"has_https": 1,
"ssl_valid": true,
...
},
"virus_total": {
"reputation": 85,
"detections": 0,
"total_engines": 70
},
"whois": {
"registrar": "Example Registrar",
"creation_date": "2020-01-01",
...
},
"ssl": {
"issuer": "DigiCert Inc",
"valid_to": "2025-01-01",
...
},
"recommendations": [
"URL appears safe"
],
"timestamp": "2026-01-15T10:30:00Z"
}
```
#### GET /api/history
获取扫描历史记录(需要身份验证)
```
GET /api/history?page=1&limit=50&category=Suspicious
```
#### GET /api/stats
获取用户统计信息(需要身份验证)
#### GET /api/report/{scan_id}
生成 PDF 报告(需要身份验证)
### 管理员端点
#### GET /api/admin/users
获取所有用户(仅限管理员)
#### DELETE /api/admin/users/{user_id}
删除用户(仅限管理员)
#### GET /api/admin/scans
获取所有扫描记录(仅限管理员)
#### POST /api/admin/block-domain
屏蔽域名(仅限管理员)
## 🧠 机器学习
### 模型训练
训练钓鱼检测模型:
```
python model/train_model.py
```
这将:
1. 加载钓鱼数据集
2. 从 URL 中提取特征
3. 训练 Random Forest 和 XGBoost 模型
4. 评估模型性能
5. 将最佳模型保存到 `model/phishing_model.pkl`
### 特征提取
模型使用 20+ 项特征:
- URL 长度、点数、连字符数
- HTTPS 可用性
- IP 地址使用情况
- 子域数量
- 可疑关键字
- 品牌冒充
- 域名年龄
- SSL 证书有效性
### 模型性能
- **准确率**:99.7%
- **精确率**:99.5%
- **召回率**:99.8%
- **F1-Score**:99.6%
### 自定义训练
使用您自己的数据集进行训练:
```
from model.train_model import PhishingModelTrainer
trainer = PhishingModelTrainer()
trainer.train(model_type='random_forest') # or 'xgboost'
```
## 🌐 Chrome 扩展
### 安装
1. 导航到 `extensions/chrome_extension/`
2. 打开 Chrome 并转到 `chrome://extensions/`
3. 启用“开发者模式”
4. 点击“加载已解压的扩展程序”
5. 选择 `chrome_extension` 文件夹
### 功能
- **自动扫描**:自动扫描访问的网站
- **实时警报**:针对钓鱼网站的警告覆盖层
- **图标状态**:颜色编码的安全指示器
- **弹窗详细信息**:快速访问扫描结果
- **API 集成**:与 PhishGuard 后端连接
### 开发
该扩展包含:
- `manifest.json` - 扩展配置
- `background.js` - 用于后台任务的服务工作者
- `content.js` - 用于页面注入的内容脚本
- `popup.html/js` - 扩展弹窗 UI
## 🚢 部署
### Render 部署
1. Fork 此仓库
2. 在 [Render](https://render.com) 上创建一个新的 Web Service
3. 连接您的 GitHub 仓库
4. Render 将自动检测 `render.yaml`
5. 在 Render 仪表板中设置环境变量
6. 部署!
### Railway 部署
1. 安装 Railway CLI:`npm i -g @railway/cli`
2. 登录:`railway login`
3. 初始化:`railway init`
4. 部署:`railway up`
### Docker 部署
```
# 构建镜像
docker build -t phishguard-ai .
# 运行容器
docker run -p 5000:5000 \
-e SECRET_KEY=your-secret \
-e DATABASE_URL=postgresql://... \
phishguard-ai
```
### 手动部署
1. 构建前端:`npm run build`
2. 安装依赖项:`pip install -r requirements.txt`
3. 设置环境变量
4. 使用 Gunicorn 运行:`gunicorn app:app --bind 0.0.0.0:5000`
## 🔍 SEO 与 Google Console
### SEO 优化
该平台包含全面的 SEO:
- **Meta 标签**:标题、描述、关键字、Open Graph、Twitter Cards
- **结构化数据**:用于 SoftwareApplication 的 JSON-LD schema
- **站点地图**:`public/sitemap.xml`
- **Robots.txt**:`public/robots.txt`
- **规范 URL**:防止内容重复
- **语义化 HTML**:正确的标题层级
### Google Search Console 设置
1. **验证所有权**
- 将 meta 标签添加到 `index.html`:
2. **提交站点地图**
- 前往 [Google Search Console](https://search.google.com/search-console)
- 添加资源:`https://phishguard.ai`
- 提交站点地图:`https://phishguard.ai/sitemap.xml`
3. **监控性能**
- 跟踪搜索查询
- 监控点击率
- 检查索引状态
- 修复抓取错误
### Google Analytics 集成
添加到 `index.html`:
```
```
## 🤝 贡献
欢迎贡献!请遵循以下步骤:
1. Fork 该仓库
2. 创建一个功能分支:`git checkout -b feature/amazing-feature`
3. 提交更改:`git commit -m 'Add amazing feature'`
4. 推送到分支:`git push origin feature/amazing-feature`
5. 发起一个 Pull Request
### 开发指南
- Python 代码遵循 PEP 8
- 前端使用 TypeScript
- 为新功能编写测试
- 更新文档
- 遵循约定式提交规范
##📝 许可证
该项目基于 MIT 许可证授权 - 有关详细信息,请参见 [LICENSE](LICENSE) 文件。
## 🙏 致谢
- [VirusTotal](https://www.virustotal.com/) 提供威胁情报 API
- [PhishTank](https://www.phishtank.com/) 提供钓鱼数据库
- [Google Safe Browsing](https://safebrowsing.google.com/) 提供恶意软件检测
- [scikit-learn](https://scikit-learn.org/) 提供机器学习工具
- 开源社区提供灵感和支持
## 📞 支持
- **网站**:[https://phishguard.ai](https://phishguard.ai)
- **文档**:[https://docs.phishguard.ai](https://docs.phishguard.ai)
- **电子邮件**:support@phishguard.ai
- **Twitter**:[@PhishGuardAI](https://twitter.com/PhishGuardAI)
- **Discord**:[加入我们的社区](https://discord.gg/phishguard)
## 🗺️ 路线图
- [ ] 移动应用
- [ ] Firefox 扩展
- [ ] Edge 扩展
- [ ] API 速率限制分级
- [ ] Webhook 通知
- [ ] 自定义 ML 模型训练
- [ ] 团队协作功能
- [ ] 高级威胁情报
- [ ] 实时监控仪表板
- [ ] 多语言支持
由 PhishGuard AI 团队用 ❤️ 制作
**一次保护一个 URL 的互联网安全。** 🛡️
标签:Apex, GNU通用公共许可证, Node.js, Python, URL分析, 反钓鱼, 威胁情报, 安全防护, 开发者工具, 无后门, 机器学习, 测试用例, 自动化攻击, 请求拦截, 逆向工具