Qhelani01/Phish-Guardian
GitHub: Qhelani01/Phish-Guardian
基于 VirusTotal 威胁情报的钓鱼检测 Web 应用,支持可疑 URL 和邮件内容分析,帮助用户识别潜在的钓鱼攻击威胁。
Stars: 0 | Forks: 0
# 🛡️ Phish Guardian
一款功能强大的网络安全 Web 应用程序,通过利用 VirusTotal 的实时威胁情报分析可疑 URL 和邮件,从而保护用户免受钓鱼攻击。
## ✨ 功能特性
- **🔗 URL 分析** - 扫描可疑网站以查找威胁
- **📧 邮件防护** - 检测钓鱼邮件并提取恶意 URL
- **🔐 用户认证** - 安全的注册、登录和用户管理
- **📊 扫描历史** - 跟踪您的所有安全分析记录
- **🎨 现代 UI** - 专业的深色主题,排版和布局清晰
- **📱 移动端响应式** - 在所有设备上完美运行
## 🚀 在线演示
访问:[此处将填入您的 Vercel URL]
## 🛠️ 技术栈
- **后端**: Node.js, Express.js
- **前端**: HTML5, CSS3, Vanilla JavaScript
- **认证**: 基于 Session,使用 bcryptjs
- **安全**: VirusTotal API 集成
- **部署**: Vercel
## 📁 项目结构
```
phish-guardian/
├── backend/
│ └── server.js # Express server & API endpoints
├── frontend/
│ ├── index.html # Marketing landing page
│ ├── app.html # Analyzer (URL + email tools, scan history)
│ ├── login.html # Login page
│ ├── signup.html # Registration page
│ ├── styles.css # All styling
│ ├── script.js # Analyzer page logic
│ ├── landing.js # Landing page auth state
│ ├── landing-menu.js # Mobile menu (landing + auth pages)
│ ├── auth.js # Authentication handling
│ └── logo2.png # Custom logo
├── vercel.json # Vercel deployment config
├── package.json # Dependencies
└── README.md # This file
```
### 线框图 (概览)
```
flowchart TB
Repo["phish-guardian/"]
Repo --> BackendDir["backend/"]
BackendDir --> Server["server.js
Express + API + static frontend"] Repo --> FrontendDir["frontend/"] FrontendDir --> Index["index.html
Landing page"] FrontendDir --> App["app.html
Analyzer"] FrontendDir --> Login["login.html"] FrontendDir --> Signup["signup.html"] FrontendDir --> MainJS["script.js
Analyzer UI"] FrontendDir --> LandingJS["landing.js
Landing CTA state"] FrontendDir --> AuthJS["auth.js
Login/signup"] FrontendDir --> CSS["styles.css"] FrontendDir --> Logo["logo2.png"] Repo --> Config["Config and tooling"] Config --> Vercel["vercel.json
Vercel routes/build"] Config --> Env[".env.example
Required env vars"] Config --> Pkg["package.json
Deps + scripts"] Index -->|loads| LandingJS App -->|loads| MainJS Login -->|loads| AuthJS Signup -->|loads| AuthJS MainJS -->|calls API| Server AuthJS -->|calls API| Server ``` ## 🚀 快速开始 ### 前置条件 - Node.js (v14 或更高版本) - npm 或 yarn - VirusTotal API 密钥 ### 安装说明 1. **克隆仓库** git clone [your-repo-url] cd phish-guardian 2. **安装依赖** npm install 3. **设置环境变量** 复制示例环境文件并填入您的值: cp .env.example .env 然后使用您的实际值编辑 `.env`: PORT=8080 NODE_ENV=development FRONTEND_URL=http://localhost:8080 JWT_SECRET=your-secret-key-change-in-production VIRUSTOTAL_API_KEY=your_virustotal_api_key_here **重要提示**: - `JWT_SECRET` 和 `VIRUSTOTAL_API_KEY` 是**必需的** - 如果缺少它们,服务器将无法启动 - 使用以下命令生成强 `JWT_SECRET`:`node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"` - 从此处获取您的 VirusTotal API 密钥:https://www.virustotal.com/gui/join-us 4. **运行开发服务器** npm run dev 5. **打开浏览器** 访问 `http://localhost:8080` ## 🔧 API 端点 - `POST /api/auth/register` - 用户注册 - `POST /api/auth/login` - 用户认证 - `POST /api/auth/logout` - 用户登出 - `GET /api/auth/me` - 获取当前用户信息 - `POST /api/analyze/url` - 分析可疑 URL - `POST /api/analyze/email` - 分析邮件内容 - `GET /api/user/scans` - 获取用户的扫描历史 ## 🎨 设计特性 - **配色方案**:深板岩色基调,配以蓝绿色点缀和微妙的环境渐变 - **字体**:Outfit (标题) 和 IBM Plex Sans (正文),从 Google Fonts 加载 - **动画**:平滑过渡和悬停效果 - **响应式**:移动优先的设计方法 - **无障碍性**:适当的对比度和键盘导航 ## 🔒 安全特性 - 使用 bcryptjs 进行密码哈希处理 - 基于安全 Cookie 的 Session 认证 - 通过认证中间件保护 API 路由 - 输入验证与清理 - CORS 保护 (可针对生产环境配置) - Helmet.js 安全标头 (XSS 防护, 内容安全策略) - 环境变量验证 (必需的密钥) - 无硬编码的 API 密钥或机密 ## 📱 响应式设计 - **桌面端**:分析区域采用双栏布局 - **平板端**:自适应网格系统 - **移动端**:堆叠布局配以汉堡菜单 ## 🚀 部署 本项目已配置为在 Vercel 上部署: 1. **推送至 GitHub** 2. **连接到 Vercel** 3. **设置环境变量** 4. **自动部署** ## 🤝 贡献 1. Fork 本仓库 2. 创建一个功能分支 3. 提交您的更改 4. 推送到该分支 5. 发起一个 Pull Request ## 📄 许可证 © 2025 Qhelani Moyo. 保留所有权利。 ## 📞 联系方式 - **邮箱**:qhestoemoyo@gmail.com - **项目**:[GitHub 仓库 URL] ## 🙏 致谢 - **VirusTotal** 提供威胁情报 API - **Express.js** 团队提供的 Web 框架 - **开源社区** 提供的各种工具和库 **由 Qhelani Moyo 用 ❤️ 构建**
Express + API + static frontend"] Repo --> FrontendDir["frontend/"] FrontendDir --> Index["index.html
Landing page"] FrontendDir --> App["app.html
Analyzer"] FrontendDir --> Login["login.html"] FrontendDir --> Signup["signup.html"] FrontendDir --> MainJS["script.js
Analyzer UI"] FrontendDir --> LandingJS["landing.js
Landing CTA state"] FrontendDir --> AuthJS["auth.js
Login/signup"] FrontendDir --> CSS["styles.css"] FrontendDir --> Logo["logo2.png"] Repo --> Config["Config and tooling"] Config --> Vercel["vercel.json
Vercel routes/build"] Config --> Env[".env.example
Required env vars"] Config --> Pkg["package.json
Deps + scripts"] Index -->|loads| LandingJS App -->|loads| MainJS Login -->|loads| AuthJS Signup -->|loads| AuthJS MainJS -->|calls API| Server AuthJS -->|calls API| Server ``` ## 🚀 快速开始 ### 前置条件 - Node.js (v14 或更高版本) - npm 或 yarn - VirusTotal API 密钥 ### 安装说明 1. **克隆仓库** git clone [your-repo-url] cd phish-guardian 2. **安装依赖** npm install 3. **设置环境变量** 复制示例环境文件并填入您的值: cp .env.example .env 然后使用您的实际值编辑 `.env`: PORT=8080 NODE_ENV=development FRONTEND_URL=http://localhost:8080 JWT_SECRET=your-secret-key-change-in-production VIRUSTOTAL_API_KEY=your_virustotal_api_key_here **重要提示**: - `JWT_SECRET` 和 `VIRUSTOTAL_API_KEY` 是**必需的** - 如果缺少它们,服务器将无法启动 - 使用以下命令生成强 `JWT_SECRET`:`node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"` - 从此处获取您的 VirusTotal API 密钥:https://www.virustotal.com/gui/join-us 4. **运行开发服务器** npm run dev 5. **打开浏览器** 访问 `http://localhost:8080` ## 🔧 API 端点 - `POST /api/auth/register` - 用户注册 - `POST /api/auth/login` - 用户认证 - `POST /api/auth/logout` - 用户登出 - `GET /api/auth/me` - 获取当前用户信息 - `POST /api/analyze/url` - 分析可疑 URL - `POST /api/analyze/email` - 分析邮件内容 - `GET /api/user/scans` - 获取用户的扫描历史 ## 🎨 设计特性 - **配色方案**:深板岩色基调,配以蓝绿色点缀和微妙的环境渐变 - **字体**:Outfit (标题) 和 IBM Plex Sans (正文),从 Google Fonts 加载 - **动画**:平滑过渡和悬停效果 - **响应式**:移动优先的设计方法 - **无障碍性**:适当的对比度和键盘导航 ## 🔒 安全特性 - 使用 bcryptjs 进行密码哈希处理 - 基于安全 Cookie 的 Session 认证 - 通过认证中间件保护 API 路由 - 输入验证与清理 - CORS 保护 (可针对生产环境配置) - Helmet.js 安全标头 (XSS 防护, 内容安全策略) - 环境变量验证 (必需的密钥) - 无硬编码的 API 密钥或机密 ## 📱 响应式设计 - **桌面端**:分析区域采用双栏布局 - **平板端**:自适应网格系统 - **移动端**:堆叠布局配以汉堡菜单 ## 🚀 部署 本项目已配置为在 Vercel 上部署: 1. **推送至 GitHub** 2. **连接到 Vercel** 3. **设置环境变量** 4. **自动部署** ## 🤝 贡献 1. Fork 本仓库 2. 创建一个功能分支 3. 提交您的更改 4. 推送到该分支 5. 发起一个 Pull Request ## 📄 许可证 © 2025 Qhelani Moyo. 保留所有权利。 ## 📞 联系方式 - **邮箱**:qhestoemoyo@gmail.com - **项目**:[GitHub 仓库 URL] ## 🙏 致谢 - **VirusTotal** 提供威胁情报 API - **Express.js** 团队提供的 Web 框架 - **开源社区** 提供的各种工具和库 **由 Qhelani Moyo 用 ❤️ 构建**
标签:AMSI绕过, Ask搜索, bcrypt, CMS安全, CSS3, Express, GNU通用公共许可证, HTML5, JavaScript, MITM代理, Node.js, URL分析, Vercel部署, VirusTotal, 会话管理, 反钓鱼, 威胁情报, 威胁检测, 开发者工具, 恶意链接检测, 搜索语句(dork), 用户认证, 移动端适配, 网络安全, 自定义脚本, 邮件安全, 隐私保护