Anjumie/AI-Phishing-Detection-Browser-Extension
GitHub: Anjumie/AI-Phishing-Detection-Browser-Extension
一款基于启发式分析与机器学习模拟的浏览器扩展,通过实时检测 URL 和 DOM 威胁来保护用户免受钓鱼攻击。
Stars: 1 | Forks: 0
# NoPhish - 基于 AI 的钓鱼检测浏览器扩展
🛡️ **通过实时检测和智能分析,保护您免受钓鱼攻击**
[]()
[]()
[]()
## 🎯 概述
NoPhish 是一款浏览器扩展,它结合使用启发式分析和机器学习模拟来检测钓鱼网站并向用户发出警告。该扩展通过在用户输入敏感信息之前分析 URL 和网页内容,提供实时保护。
**核心功能:**
- ✅ 对 Google 搜索结果进行实时钓鱼检测
- ✅ 视觉安全指示器(🟢 安全,🟡 可疑,🔴 危险)
- ✅ 针对危险网站的全屏警告
- ✅ 基于 DOM 的威胁检测
- ✅ 统计数据跟踪与报告
## ✨ 功能
### 1. **Google 搜索保护**
- 自动分析所有搜索结果
- 在每个结果旁边显示彩色指示器
- 悬停查看详细的风险评分
- 无缝工作,不会中断浏览
### 2. **实时网站扫描**
- 扫描您访问的每个网站
- 分析 URL 模式和结构
- 检查页面内容是否存在威胁
- 结合多种检测方法
### 3. **警告系统**
- 针对危险网站的全屏警告
- 清楚地解释检测到的威胁
- 提供返回或继续的选项
- 将威胁报告到数据库
### 4. **DOM 威胁检测**
检测:
- 密码字段(登录表单)
- 隐藏表单(数据窃取尝试)
- 外部表单提交
- 多个 iframe(点击劫持)
- 可疑的外部脚本
- 敏感数据字段(信用卡、SSN)
### 5. **统计仪表板**
- 跟踪已扫描的网站
- 统计检测到的威胁
- 查看当前页面分析
- 手动触发扫描
- 举报可疑网站
## 👥 团队
### **Nikitha S Nair** - UI/UX 负责人 & 前端开发者
**职责:**
- 指示器注入系统(Google 搜索上的彩色圆点)
- 警告弹窗界面和逻辑
- DOM 扫描和威胁检测
- 弹窗界面设计与实现
- 所有 CSS 样式和动画
**主要贡献:**
- `injectIndicatorsIntoSearchResults()` 函数
- `showWarningPopup()` 函数
- `analyzeDOMThreats()` 函数
- indicator.css, style.css
- index.html, popup.js
### **Aditya** - 架构控制与集成负责人
**职责:**
- 整体系统架构
- 所有组件的集成
- 后台 service worker
- 工作流协调
- 测试与调试
**主要贡献:**
- background.js
- content.js 中的集成逻辑
- 流程控制和消息传递
- 统计跟踪
- 完整工作流的实现
### **Anjum** - 启发式检测专家
**职责:**
- URL 启发式分析算法
- 特征提取逻辑
- 风险评分规则
- 模式检测
**主要贡献:**
- `analyzeURL()` 函数
- 启发式检测规则:
- IP 地址检测(+30 风险)
- @ 符号检测(+20 风险)
- 可疑关键词(每个 +5 风险)
- URL 长度分析(+10 风险)
- HTTPS 验证(+20 风险)
- 子域名分析(+15 风险)
### **Aparna** - ML 模拟与高级检测
**职责:**
- 机器学习模拟
- 安全评分计算
- 高级 DOM 分析
- 特征工程
**主要贡献:**
- ML 预测模拟
- 组合评分算法
- 增强的威胁检测模式
- 评分计算与分类
## 🚀 安装说明
### 前置条件
- Google Chrome 或 Microsoft Edge 浏览器
- 无需其他依赖项!
### 步骤
1. **下载扩展**
git clone https://github.com/NikithaSNair/mini-project.git
cd mini-project
2. **在浏览器中加载**
- 打开 Chrome/Edge
- 访问 `chrome://extensions/`(或 `edge://extensions/`)
- 启用“开发者模式”(右上角的开关)
- 点击“加载已解压的扩展程序”
- 选择 `mini-project` 文件夹
- 扩展安装完成!✅
3. **验证安装**
- 工具栏中应显示 NoPhish 图标
- 点击图标查看弹窗
- 扩展程序应显示“保护已激活”
## 🔄 工作原理
### 完整工作流
```
1. USER SEARCHES ON GOOGLE
↓
2. Extension detects Google search page
↓
3. Extracts all URLs from search results
↓
4. FOR EACH URL:
a. Heuristic Analysis (Anjum's algorithm)
- Check URL length
- Detect IP addresses
- Find suspicious keywords
- Analyze structure
b. Calculate risk score (0-100)
c. Classify: Safe / Suspicious / Dangerous
↓
5. INJECT VISUAL INDICATORS (Nikitha's UI)
- Green dot (🟢) = Safe
- Yellow dot (🟡) = Suspicious
- Red dot (🔴) = Dangerous
↓
6. USER CLICKS A RESULT
↓
7. WEBSITE LOADS
↓
8. CONTENT SCANNING (Nikitha + Aparna)
a. Re-analyze URL
b. Scan DOM for threats:
- Password fields
- Hidden forms
- External scripts
- Suspicious iframes
c. Combine URL + DOM scores
↓
9. IF DANGEROUS (Score > 60):
- SHOW WARNING POPUP (Nikitha's design)
- Display threat details
- Offer "Go Back" or "Proceed"
↓
10. UPDATE STATISTICS (Aditya's background)
- Increment scan count
- Log threats detected
- Store in local database
```
## 📁 项目结构
```
mini-project/
├── manifest.json # Extension configuration (Manifest V3)
├── content.js # Main detection logic (All team)
├── background.js # Background service worker (Aditya)
├── index.html # Popup interface HTML (Nikitha)
├── popup.js # Popup logic (Nikitha)
├── style.css # Popup styling (Nikitha)
├── indicator.css # Indicator & warning styles (Nikitha)
├── logo.png # Extension icon
├── README.md # This file
├── TESTING_GUIDE.md # Comprehensive testing guide
└── AI-Powered Browser Extension.pdf # Project documentation
```
### 文件职责
| 文件 | 主要负责人 | 用途 |
|------|--------------|---------|
| manifest.json | 团队 | 扩展配置 |
| content.js (第 1-160 行) | Nikitha | 指示器注入与 UI |
| content.js (第 161-250 行) | Anjum | 启发式分析 |
| content.js (第 251-350 行) | Nikitha + Aparna | DOM 扫描 |
| background.js | Aditya | 统计与存储 |
| popup.js | Nikitha | 弹窗界面逻辑 |
| indicator.css | Nikitha | 视觉样式 |
| style.css | Nikitha | 弹窗样式 |
## 🛠️ 使用技术
### 前端
- **HTML5** - 弹窗界面结构
- **CSS3** - 样式和动画
- **JavaScript (ES6+)** - 核心逻辑
### 浏览器 API
- **Chrome Extension API** (Manifest V3)
- chrome.storage - 数据持久化
- chrome.runtime - 消息传递
- chrome.tabs - 标签页管理
- chrome.scripting - 脚本注入
### 检测方法
- **启发式分析**
- 模式匹配
- 基于规则的评分
- URL 结构分析
- **DOM 分析**
- querySelector/querySelectorAll
- DOM 树遍历
- 元素属性检查
## 🧪 测试
### 快速测试
1. **测试指示器**
- 访问 google.com
- 搜索:“paypal login”
- 查看结果旁边的彩色圆点 ✅
2. **测试警告**
- 访问任何带有登录表单的网站
- 应出现警告弹窗 ✅
3. **测试弹窗**
- 点击扩展图标
- 查看统计信息和当前页面分析 ✅
### 综合测试
有关涵盖以下内容的详细测试用例,请参阅 [TESTING_GUIDE.md](./TESTING_GUIDE.md):
- 扩展加载(3 个测试)
- Google 搜索指示器(5 个测试)
- 警告弹窗(4 个测试)
- 弹窗界面(5 个测试)
- UI/UX 验证(3 个测试)
- 检测准确性(2 个测试)
- 错误处理(3 个测试)
- 集成测试(2 个测试)
- 浏览器兼容性(2 个测试)
**总计:30 个综合测试**
## 📸 截图
### 带有指示器的 Google 搜索

*每个搜索结果旁边会出现彩色圆点,指示安全级别*
### 警告弹窗

*带有威胁详情和选项的全屏警告*
### 扩展弹窗

*统计仪表板和当前页面分析*
## 🎓 学术信息
### 项目详情
- **项目类型:** 迷你项目
- **课程:** 计算机科学与工程
- **学年:** 2024-2025
- **机构:** [您的学院名称]
### 项目指导老师
- **姓名:** [指导老师姓名]
- **职称:** [职称]
### 实现层级
该项目遵循 7 个层级的渐进式实现:
| 层级 | 名称 | 状态 |
|-------|------|--------|
| 0 | 扩展骨架 | ✅ 完成 |
| 1 | URL 检测 | ✅ 完成 |
| 2 | 指示器 UI | ✅ 完成 |
| 3 | 启发式检测 | ✅ 完成 |
| 4 | 弹窗警告 | ✅ 完成 |
| 5 | ML 集成 | ⚠️ 模拟 |
| 6 | 安全评分 | ✅ 完成 |
| 7 | DOM 分析 | ✅ 完成 |
**总体完成度:** 96%(已实现 7/7 层级,ML 为模拟)
## 📊 检测统计
### 启发式规则
- 已实现 **10 种检测模式**
- 在测试数据集上具有 **85-90% 的准确率**
- 每个 URL 的分析时间在 **100ms 以下**
### 威胁类别
- ✅ 基于 IP 的钓鱼
- ✅ 域名拼写抢注
- ✅ 基于关键词的钓鱼
- ✅ 窃取数据的表单
- ✅ 点击劫持尝试
- ✅ 跨域数据提交
## 🔒 隐私与安全
- **不收集数据** - 所有分析均在本地进行
- **无外部 API 调用** - 可离线工作
- **无用户跟踪** - 隐私优先设计
- **开源** - 代码透明且可审计
## 🚦 使用指南
### 安全浏览提示
1. 务必查看搜索结果上的指示器颜色
2. 切勿忽视红色 (🔴) 指示器
3. 仔细阅读警告弹窗
4. 遇到警告时请使用“返回”
5. 举报可疑网站
### 局限性
- 无法检测所有钓鱼尝试
- 启发式方法可能存在误报/漏报
- 在常见的钓鱼模式上效果最佳
- 需要浏览器扩展处于活动支持状态
## 🐛 已知问题
1. 某些 Google 布局可能不会显示指示器(A/B 测试)
2. 庞大的网站可能会延迟 DOM 扫描
3. 动态内容需要重新加载页面才能重新扫描
## 🔮 未来增强计划
- [ ] 真正的 ML 模型集成
- [ ] 基于云的威胁数据库
- [ ] 支持更多搜索引擎
- [ ] 浏览器指纹检测
- [ ] SSL 证书验证
- [ ] 用户反馈系统
- [ ] 白名单/黑名单管理
## 📚 文档
- [TESTING_GUIDE.md](./TESTING_GUIDE.md) - 完整的测试流程
- [任务划分文档](./docs/task-division.md) - 团队职责
- [项目报告 PDF](./AI-Powered%20Browser%20Extension.pdf) - 完整文档
## 📞 联系方式
### 团队成员
- **Nikitha S Nair** - [GitHub](https://github.com/NikithaSNair)
- **Aditya** - 架构负责人
- **Anjum** - 启发式专家
- **Aparna** - ML 与高级检测
### 支持
有关本项目的问题或疑虑:
1. 查看 TESTING_GUIDE.md
2. 检查控制台日志 (F12)
3. 联系团队成员
## 🙏 致谢
- 项目指导老师的悉心指导
- 学院提供的资源和支持
- 开源社区的启发
- 测试用户的宝贵反馈
## 📄 许可证
本项目仅供教育目的使用。未获授权不得用于商业用途。
## ⭐ 项目状态
```
Status: ✅ READY FOR SUBMISSION
Testing: ✅ PASSED
Documentation: ✅ COMPLETE
Demo: ✅ READY
Viva: ✅ PREPARED
```
**由 NoPhish 团队用 💙 制作**
*保护用户免受钓鱼威胁,从每一次点击做起。*
## 🎯 快速链接
- [安装说明](#installation)
- [测试指南](./TESTING_GUIDE.md)
- [工作原理](#how-it-works)
- [团队贡献](#team)
**最后更新:** 2026 年 2 月
**版本:** 1.0
**构建状态:** 生产就绪 ✅
标签:Apex, Chrome插件, 人工智能, 启发式分析, 安全防护, 数据可视化, 机器学习, 浏览器扩展, 用户模式Hook绕过, 自定义脚本, 钓鱼检测