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 分类为: - ✅ 合法 - ❌ 钓鱼 并返回**置信度分数**以提高可解释性。 ## 🖥️ 用户界面 ### 🏠 首页 ![主页](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/c6994cfdc2081325.png) ### 🔍 合法网站检测 ![合法](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/c2d8019e83081331.png) ### 🔍 钓鱼网站检测 ![钓鱼](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/a083ae39b8081337.png) ## 🧠 数据科学与机器学习方法 - **领域:** 网络安全 - **学习类型:** 监督分类 - **输入:** 网站 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, 多模态安全, 数据科学, 无后门, 机器学习, 资源验证, 逆向工具, 钓鱼检测