Thilak2006/Malicious-Webpage-Detection

GitHub: Thilak2006/Malicious-Webpage-Detection

该项目使用随机森林等机器学习算法分析 URL 特征,实现对钓鱼、恶意软件分发等恶意网页的自动分类检测。

Stars: 1 | Forks: 0

# 🛡️ 使用机器学习进行恶意网页检测 ![Python](https://img.shields.io/badge/Python-3.x-blue) ![Scikit-learn](https://img.shields.io/badge/Scikit--learn-ML-orange) ![Flask](https://img.shields.io/badge/Flask-Web_App-black) ![Render](https://img.shields.io/badge/Deployment-Render-purple) ![License](https://img.shields.io/badge/License-MIT-green) 一个有监督的机器学习应用,通过分析基于 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检测, 机器学习, 特征工程, 蓝队分析, 逆向工具