Mohit-Jagudi/phishing-url-detector
GitHub: Mohit-Jagudi/phishing-url-detector
基于 Python 和 Flask 构建的规则驱动型钓鱼 URL 检测系统,通过对 URL 进行多维度安全规则检查并计算风险评分来判断其威胁等级。
Stars: 0 | Forks: 0
# Phishing URL 检测器
Phishing URL Detector 是一个基于 Python 的 Web 应用程序,用于检查 URL 是否存在常见的钓鱼特征。它会计算风险评分,并将每个 URL 分类为 SAFE(安全)、SUSPICIOUS(可疑)或 PHISHING(钓鱼)。
## 问题陈述
许多钓鱼网站的外观与合法网站非常相似,导致难以识别。该项目旨在帮助用户在访问之前检测出可疑的 URL。
## 目标
本项目的主要目标是:
- 通过基于规则的分析检测钓鱼 URL
- 为每个 URL 计算风险评分
- 通过简单的 Web 界面展示分析结果
- 提供用于检查 URL 的 API 支持
## 功能
- 基于规则的钓鱼 URL 检测
- 12 项安全检查
- 检测临时托管服务(Cloudflare Tunnel、Ngrok、LocalTunnel)
- 风险评分计算
- SAFE / SUSPICIOUS / PHISHING 判定结果
- 基于 Flask 的 Web 界面
- REST API 支持
- 使用 Pytest 进行单元测试
## 使用技术
- Python
- Flask
- HTML
- CSS
- Pytest
## 项目结构
```
phishing-url-detector/
│── app.py
│── detector.py
│── requirements.txt
│── README.md
│── templates/
│ └── index.html
│── tests/
│ └── test_detector.py
```
## 如何运行
1. 克隆此代码仓库
2. 安装依赖项
```
pip install -r requirements.txt
```
3. 运行应用程序
```
python app.py
```
4. 打开浏览器并访问
```
http://127.0.0.1:5000
```
## 使用方法
### Web 界面
将任意 URL 粘贴到输入框中,然后点击 **Analyze**(分析)。
### 命令行
```
python detector.py "http://instagram.com.verify-account.xyz/login"
```
### REST API
```
curl -X POST http://127.0.0.1:5000/api/check \
-H "Content-Type: application/json" \
-d '{"url":"http://instagram.com.verify-account.xyz/login"}'
```
### 运行测试
```
python -m pytest tests/ -v
```
## 工作流程
- 输入一个 URL
- 点击 Analyze
- 系统检查该 URL
- 计算风险评分
- 显示最终判定结果
## 工作原理
该应用程序使用多条安全规则来检查 URL。每触发一条规则都会累加特定的风险评分。根据最终得分,URL 将被分类为:
| 评分 | 判定结果 |
|-------:|---------|
| 0 – 19 | SAFE |
| 20 – 49 | SUSPICIOUS |
| 50+ | PHISHING |
该应用程序还会显示触发的规则以及相应的风险评分,方便您了解 URL 被标记为可疑或钓鱼的原因。
## 优势
- 易于使用
- 快速的 URL 分析
- 基于规则的检测
- 轻量级应用程序
## 局限性
- 仅支持基于规则的检测
- 未使用 Machine Learning
- 不在线验证 URL
- 准确性取决于预定义的检测规则
## 未来改进
- 浏览器扩展
- 检测历史记录
- 集成 Machine Learning
- Google Safe Browsing API
## 作者
**Mohit Jagudi**
- GitHub: [Mohit Jagudi](https://github.com/Mohit-Jagudi/)
- LinkedIn: [Mohit Jagudi](https://www.linkedin.com/in/mohit-jagudi/)
标签:Flask, Python, REST API, 多模态安全, 无后门, 逆向工具, 钓鱼检测