jayjadhav04/phishing-website-detection
GitHub: jayjadhav04/phishing-website-detection
基于 XGBoost 与规则引擎混合架构的钓鱼网站 URL 检测系统,通过 Flask Web 应用提供实时分类预测与置信度评分。
Stars: 0 | Forks: 0
## 🛡️ 钓鱼网站检测系统
一个混合了**机器学习与基于规则**的 Web 应用程序,用于检测网站 URL 是**合法**、**可疑**还是**钓鱼**。本项目使用 **Python、Flask 和 XGBoost** 构建,遵循完整的工业标准机器学习 pipeline。
## 🚀 功能
- 基于 URL 的钓鱼检测
- 混合基于规则与机器学习的方法
- 三个级别的分类
### ⚒️ 数据科学项目(应用机器学习)
一个端到端的**数据科学与应用机器学习项目**,用于检测给定的网站 URL 是**合法还是钓鱼**。
该系统使用 **XGBoost 分类器**应用了**数据分析、特征工程、模型比较和机器学习部署**,并通过 Flask Web 应用程序提供带有**置信度分数**的预测。
## 🚀 演示链接
🔗 https://phishing-website-detection-2xxp.onrender.com/
## 📌 问题陈述
钓鱼网站通过模仿合法平台来窃取敏感的用户信息,例如登录凭证和财务详情。
由于攻击模式不断演变,人工检测并不可靠,因此需要**数据驱动且自动化的钓鱼检测系统**。
## 🎯 解决方案概述
本项目遵循**数据科学工作流**:
- 数据理解与预处理
- 探索性数据分析 (EDA)
- 针对 URL 模式的特征工程
- 训练和评估多个机器学习模型
- 根据性能指标选择最佳模型
- 将最终模型部署为 Web 应用程序
系统将 URL 分类为:
- ✅ 合法
- ❌ 钓鱼
并返回**置信度分数**以提高可解释性。
## 🖥️ 用户界面
### 🏠 首页

### 🔍 合法网站检测

### 🔍 钓鱼网站检测

## 🧠 数据科学与机器学习方法
- **领域:** 网络安全
- **学习类型:** 监督分类
- **输入:** 网站 URL
- **输出:** 类别标签 + 置信度分数
- **最终模型:** XGBoost 分类器
### 🔍 特征工程
- URL 长度
- 特殊字符频率
- HTTPS 存在性
- 可疑关键词
- 重定向指示器
- 基于域名的属性
## 📊 模型评估与结果
作为数据科学生命周期中**模型选择阶段**的一部分,我们训练并评估了多个机器学习模型。
特别强调了对**钓鱼网站召回率 (Phishing Recall)** 的关注,因为在网络安全应用中,假阴性(漏报)的代价非常高昂。
### 🔎 模型比较
| 模型 | 准确率 | 钓鱼召回率 |
|------|---------|----------------|
| Logistic Regression | 93.65% | 93.35% |
| Decision Tree | 93.31% | 93.00% |
| SVM | 95.27% | 95.01% |
| Random Forest | 96.41% | 96.94% |
| **XGBoost (最终模型)** | **97.03%** | **97.64%** |
### 🏆 最终模型性能 (XGBoost)
- **准确率:** 97.03%
- **精确率:** 95.89%
- **召回率:** 97.64%
- **F1-Score:** 96.88%
由于其卓越的性能和极高的召回率,XGBoost 被选为最终模型,从而确保在进行有效的钓鱼检测的同时最大限度地减少假阴性(漏报)。
## ⚙️ 端到端工作流
1. 用户提供输入的 URL
2. 基于 URL 的特征提取
3. 数据预处理与转换
4. 使用训练好的 XGBoost 模型进行预测
5. 输出带有置信度分数的分类结果
6. 记录预测结果以供分析
## 🖥️ Web 应用程序
基于 Flask 的 Web 界面支持:
- 实时 URL 输入
- 即时生成钓鱼/合法预测
- 显示置信度级别以确保透明度
## 🛠️ 技术栈
- **编程语言:** Python
- **数据科学:** Pandas, NumPy
- **机器学习:** Scikit-learn, XGBoost
- **Web 框架:** Flask
- **可视化:** Matplotlib, Seaborn
## ▶️ 如何运行该项目
1. 克隆仓库:
git clone https://github.com/jayjadhav04/phishing-website-detection.git
2. 导航至项目目录:
cd phishing-website-detection
3. 安装依赖项:
pip install -r requirements.txt
4. 运行 Flask 应用程序:
python app/app.py
5. 打开浏览器并访问:
http://127.0.0.1:5000/
## 🚀 未来增强功能
- 云部署 (AWS / Render / Streamlit)
- 集成黑名单与基于 WHOIS 的特征
- 高级特征工程
- 基于深度学习的钓鱼检测
- 用于预测洞察的分析仪表板
## 🧪 使用的技术
- Python
- Flask
- Scikit-learn
- XGBoost
- Pandas, NumPy
- HTML, CSS
## 未来展望
- 集成 WHOIS 域名年龄
- Web 流量分析 API
- 基于深度学习的钓鱼检测
标签:Apex, Flask, Python, XGBoost, 多模态安全, 数据科学, 无后门, 机器学习, 资源验证, 逆向工具, 钓鱼检测