Thilak2006/Malicious-Webpage-Detection
GitHub: Thilak2006/Malicious-Webpage-Detection
该项目使用随机森林等机器学习算法分析 URL 特征,实现对钓鱼、恶意软件分发等恶意网页的自动分类检测。
Stars: 1 | Forks: 0
# 🛡️ 使用机器学习进行恶意网页检测





一个有监督的机器学习应用,通过分析基于 URL 的特征将网页分类为**合法**或**恶意**。该项目比较了多种分类算法,并将表现最佳的模型部署为托管在 **Render** 上的 Flask Web 应用程序。
🌐 **在线演示:** https://malicious-webpage-detection.onrender.com/
## 📌 问题陈述
恶意网页通常用于网络钓鱼攻击、恶意软件分发和凭据窃取。在用户与这些网站交互之前检测出它们,可以显著提高在线安全性。
本项目旨在构建一个有监督的机器学习模型,能够准确地将网页分类为**合法**或**恶意**,帮助用户识别潜在的有害网站。
## ✨ 功能
- 🔍 检测网页是**合法**的还是**恶意**的
- 📊 比较多种机器学习算法
- 🧠 使用基于 URL 的特征提取进行预测
- 🌐 部署为 Flask Web 应用程序
- ☁️ 托管在 Render 上以供公开访问
## 🧠 机器学习工作流
- 数据收集
- 数据预处理
- URL 特征提取
- 模型训练
- 模型评估
- 模型比较
- Flask Web 应用程序开发
- 使用 Render 进行云部署
## 🤖 评估的算法
我们对三种有监督学习算法进行了训练和评估,以确定表现最佳的模型。
| 算法 | 准确率 |
|-----------|---------:|
| 逻辑回归 | **86.98%** |
| 朴素贝叶斯 | **90.00%** |
| 🏆 随机森林 | **98.64%** |
在比较了多项评估指标后,**随机森林**取得了最高的性能,因此被选为最终的部署模型。
## 📊 最终模型性能(随机森林)
| 指标 | 得分 |
|---------|------:|
| 准确率 | **98.64%** |
| 加权精确率 | **0.99** |
| 加权召回率 | **0.99** |
| 加权 F1 分数 | **0.99** |
## 🛠️ 技术栈
### 编程语言
- Python
### 机器学习
- Scikit-learn
- Pandas
- NumPy
### 后端
- Flask
### 前端
- HTML
- CSS
### 部署
- Render
### 版本控制
- Git
- GitHub
## 📁 项目结构
```
Malicious-Webpage-Detection/
│
├── app.py
├── model_training.py
├── feature_extraction.py
├── random_forest_model.pkl
├── feature.pkl
├── requirements.txt
├── templates/
│ └── index.html
├── static/
│ └── style.css
└── README.md
```
## ⚙️ 安装
### 克隆仓库
```
git clone https://github.com/yourusername/Malicious-Webpage-Detection.git
```
### 导航到项目文件夹
```
cd Malicious-Webpage-Detection
```
### 安装依赖项
```
pip install -r requirements.txt
```
### 运行 Flask 应用程序
```
python app.py
```
打开浏览器并访问:
```
http://127.0.0.1:5000/
```
## 💡 工作原理
1. 用户输入网页 URL。
2. 从输入中提取 URL 特征。
3. 训练好的随机森林模型处理这些特征。
4. 应用程序预测该网页是**合法**的还是**恶意**的。
5. 结果通过 Flask Web 界面显示。
## 📽️ 在线演示
🌐 **应用程序:** https://malicious-webpage-detection.onrender.com/
## 📚 核心学习点
- 有监督机器学习
- 二元分类
- 特征工程
- 模型比较与选择
- 集成学习
- Flask Web 开发
- 使用 Pickle 进行模型序列化
- 使用 Render 进行云部署
## 🚀 未来改进
- 集成实时 URL 信誉 API
- 显示预测置信度分数
- 支持批量 URL 分析
- 开发 REST API
- 使用 Docker 对应用程序进行容器化
- 增强特征工程以提升检测能力
## 👨💻 作者
**Thilak S**
🔗 **LinkedIn:** https://www.linkedin.com/in/thilak-sakkaravarthi/
💻 **GitHub:** https://github.com/Thilak2006
### ⭐ 如果您觉得这个项目有用,请考虑给仓库点个 Star!
这会激励我继续构建和分享更多机器学习与 AI 项目。
标签:Apex, Flask, Scikit-learn, Web安全, 多模态安全, 恶意URL检测, 机器学习, 特征工程, 蓝队分析, 逆向工具