harshada-2516/PhishGuard
GitHub: harshada-2516/PhishGuard
一款结合启发式分析与威胁情报 API 的钓鱼 URL 检测 Web 应用,通过多维度风险评估将 URL 分类为安全、可疑或钓鱼。
Stars: 0 | Forks: 0
# PhishGuard - 高级钓鱼检测应用
这是一款 Web 应用,通过结合前端和后端组件以及高级检测算法,帮助检测钓鱼 URL。
## 功能
- 用于钓鱼检测的实时 URL 分析
- 多种高级检测方法:
- 已知钓鱼域名数据库
- 可疑关键词分析
- 域名结构分析
- 使用 WHOIS 进行域名年龄验证
- PhishTank 数据库集成
- 可疑 TLD 检测
- 带有详细分析的风险评分系统
- 具有视觉反馈的用户友好界面
- 适用于所有设备的响应式设计
## 技术栈
- **前端**:HTML, CSS, JavaScript
- **后端**:Python Flask 与高级钓鱼检测
- **API**:PhishTank API(可选),WHOIS 查询
- **其他库**:Flask-CORS, python-whois, validators
## 安装说明
### 前置条件
- Python 3.7 或更高版本
- pip(Python 包安装器)
### 安装
1. 克隆或下载此代码库
2. 导航至项目目录:
cd PhishGuard1
3. 创建虚拟环境(推荐):
python -m venv venv
4. 激活虚拟环境:
- 在 Windows 上:
venv\Scripts\activate
- 在 macOS/Linux 上:
source venv/bin/activate
5. 安装所需的包:
pip install -r requirements.txt
6. (可选)在 `.env` 文件中配置 API 密钥以增强检测:
- PhishTank API 密钥:在 https://www.phishtank.com/api_info.php 注册
- Google Safe Browsing API 密钥:在 https://developers.google.com/safe-browsing/v4/get-started 注册
### 运行应用
1. 启动 Flask 服务器:
python app.py
2. 打开 Web 浏览器并导航至:
http://localhost:5000
## API 端点
- `GET /` - 提供前端应用
- `GET /api/` - API 信息
- `GET /api/health` - 健康检查端点
- `POST /api/check-url` - URL 分析端点
### POST /api/check-url
**请求体:**
```
{
"url": "https://example.com"
}
```
**响应:**
```
{
"status": "safe|suspicious|phishing",
"score": 0-10,
"url": "https://example.com",
"checks": {
"keyword_check": {
"suspicious": true|false,
"score": 0-10,
"found_keywords": ["keyword1", "keyword2"],
"details": "Description of the check"
},
"domain_structure": {
"suspicious": true|false,
"score": 0-10,
"issues": ["issue1", "issue2"],
"details": "Description of the check"
},
"domain_age": {
"suspicious": true|false,
"score": 0-10,
"age_days": 45,
"creation_date": "2023-01-01",
"details": "Description of the check"
},
"phishtank_check": {
"suspicious": true|false,
"score": 0-10,
"details": "Description of the check"
}
}
}
```
## 工作原理
1. **关键词检查**:搜索钓鱼 URL 中常用的可疑关键词
2. **域名结构分析**:检查域名是否存在可疑模式,如 IP 地址、过多的点或可疑的 TLD
3. **域名年龄验证**:使用 WHOIS 数据检查域名年龄(较新的域名更为可疑)
4. **PhishTank 数据库检查**:与已知钓鱼网站的 PhishTank 数据库进行比对验证(需要 API 密钥)
应用会根据这些检查计算风险评分,并将 URL 分类为安全、可疑或钓鱼。
## 用于测试的示例 URL
- 安全:https://www.google.com
- 可疑:https://login-verify-account.com
- 钓鱼:https://paypal-secure-verify.com
## 配置
您可以通过修改 `config.py` 中的配置来自定义钓鱼检测:
1. **可疑关键词**:更新 `SUSPICIOUS_KEYWORDS` 列表
2. **可疑 TLD**:修改 `SUSPICIOUS_TLDS` 列表
3. **域名年龄阈值**:调整 `MIN_DOMAIN_AGE_DAYS`
4. **API 密钥**:在 `.env` 中添加 PhishTank 或 Google Safe Browsing API 密钥
## 许可证
本项目仅供教育目的使用。对于关键应用,请务必手动验证结果。
标签:多模态安全, 数据可视化, 逆向工具