abhinavtiwari77/SPYDER
GitHub: abhinavtiwari77/SPYDER
一款集成了 AI 辅助分析、恶意软件扫描、威胁情报查询与用户认证的全栈网络安全 Web 应用。
Stars: 0 | Forks: 0
# Spyder
Spyder 是一款全栈网络安全 Web 应用,具备 AI 辅助分析、恶意软件扫描、威胁情报查询、NSFW 图片审核以及用户身份验证功能。
本仓库包含:
- 位于 `Frontend/` 的 React + Vite 前端
- 位于 `Backend/` 的 Node.js + Express 后端
## 在线部署
- **前端应用**:[https://spyder-frontend.onrender.com/](https://spyder-frontend.onrender.com/)
- **后端 API**:[https://spyder-backend.onrender.com](https://spyder-backend.onrender.com)
## 功能
- 用于安全相关指导的 AI 聊天助手
- 使用 VirusTotal 进行文件扫描
- 针对 IP、域名、URL 和文件哈希的威胁情报扫描
- NSFW 图片审核端点
- 基于 JWT 的身份验证(注册、登录、受保护路由)
- 用户设置更新支持(姓名、用户名、密码)
- 支持浅色和深色 UI 主题
## 技术栈
前端:
- React 18
- Vite
- Tailwind CSS
- NextUI
- React Router
- Axios
后端:
- Node.js
- Express
- MongoDB + Mongoose
- JWT + bcrypt
- Multer
- Axios
外部服务:
- Groq API(聊天分析)
- VirusTotal API(文件 + IOC 威胁情报)
## 项目结构
```
Spyder/
Backend/
config/
middleware/
models/
routes/
utils/
index.js
fileScan.js
threatIntel.js
.env.example
Frontend/
src/
Components/
Contexts/
Layouts/
Pages/
index.html
vite.config.js
README.md
```
## 前置条件
- 推荐 Node.js 18+
- npm
- MongoDB 数据库 URI
- Groq API 密钥
- VirusTotal API 密钥
## 本地设置
1. 克隆仓库。
2. 安装后端依赖:
```
cd Backend
npm install
```
3. 安装前端依赖:
```
cd ../Frontend
npm install
```
4. 创建后端环境文件:
```
cd ../Backend
copy .env.example .env
```
5. 在 `Backend/.env` 中填写所需的值。
6. 启动后端服务器:
```
npm start
```
7. 在新的终端中,启动前端开发服务器:
```
cd Frontend
npm run dev
```
默认本地 URL:
- 前端:http://localhost:5173
- 后端:http://localhost:3000
## 环境变量
使用 `Backend/.env.example` 作为参考标准。
## 部署至 Render
本项目已配置为可使用内置的 `render.yaml` Blueprint 在 [Render](https://render.com) 上轻松部署。
1. 将代码推送到 Git 仓库。
2. 在 Render 中创建一个新的 **Blueprint** 并连接您的仓库。
3. Render 将自动检测前端和后端服务。
4. 填入请求的机密环境变量(例如 MongoDB URI、API 密钥)。
5. 确保 URL 生成后更新 `BACKEND_BASE_URL` 和 `VITE_API_BASE_URL`。
## 可用脚本
后端 (`Backend/package.json`):
- `npm start` - 运行 API 服务器
前端 (`Frontend/package.json`):
- `npm run dev` - 启动 Vite 开发服务器
- `npm run build` - 生产环境构建
- `npm run preview` - 预览生产环境构建
- `npm run lint` - 运行 ESLint
## API 概览
身份验证:
- `POST /api/auth/signup`
- `POST /api/auth/login`
- `GET /api/auth/me`
- `PUT /api/auth/settings`(更新姓名、用户名、密码)
- `POST /api/auth/logout`
聊天:
- `POST /api/chat/history`
- `GET /api/chat/history`
- `GET /api/chat/conversations`
- `DELETE /api/chat/history/:id`
- `POST /api/chat/tracking`
威胁情报:
- `POST /intel/scan`
- `POST /intel/file`
- `POST /intel/bulk`
- `POST /intel/share`
其他端点:
- `POST /scanFile`(文件扫描 + AI 分析)
- `POST /groqChat`
- `POST /geminiChat`
- `POST /api/nsfw/*`(NSFW 路由)
对于受保护的路由,请发送:
```
Authorization: Bearer
```
## GitHub 推送检查清单
推送前:
- 确保 `Backend/.env` 未被提交
- 确保 API 密钥/机密未出现在代码或提交历史中
- 运行前端 lint/构建
- 验证登录、注册、设置更新和注销流程
建议的命令:
```
cd Frontend
npm run lint
npm run build
```
标签:GNU通用公共许可证, MITM代理, Node.js, React, Syscalls, Sysdig, Web安全, 威胁情报, 开发者工具, 恶意软件扫描, 自定义脚本, 蓝队分析