vishalpoute/vulnscan-final-year-project
GitHub: vishalpoute/vulnscan-final-year-project
一个基于Flutter与FastAPI的跨平台漏洞扫描与分析平台,解决多端安全漏洞的识别、报告与集中管理问题。
Stars: 0 | Forks: 0
# 🛡️ VulnScan - 漏洞扫描与分析平台




## 📋 目录
- [概述](#overview)
- [功能特性](#features)
- [适用用户](#who-benefits)
- [项目结构](#project-structure)
- [系统要求](#system-requirements)
- [安装指南](#installation-guide)
- [后端设置](#backend-setup)
- [前端设置](#frontend-setup)
- [运行应用](#running-the-application)
- [API 文档](#api-documentation)
- [开发流程](#development-workflow)
- [常见问题](#troubleshooting)
- [贡献指南](#contributing)
- [许可证](#license)
## 🎯 概述
**VulnScan** 是一个基于 **Flutter**(前端)和 **FastAPI**(后端)的全面漏洞扫描与分析平台。它使开发者、安全团队和组织能够识别、分析和修复其应用程序和系统中的安全漏洞。
该平台提供:
- 🔍 **多平台实时漏洞扫描**
- 📊 **详细的安全报告与可操作洞察**
- 🚀 **多平台支持**(Android、iOS、Windows、Linux、macOS、Web)
- ☁️ **基于云的后端与 MongoDB 数据库**
- 🔐 **Firebase 身份验证保障安全访问**
- 📈 **高级分析与趋势分析**
## ✨ 功能特性
### 前端(Flutter)
- 跨平台移动与桌面 UI
- 实时扫描状态更新
- 交互式漏洞报告
- PDF 导出功能
- 用户认证与个人资料管理
- 支付集成(高级功能)
- 深色/浅色主题支持
### 后端(FastAPI)
- 完善的 RESTful API 端点
- 高性能的异步处理
- 可扩展存储的 MongoDB 集成
- 认证用的 Firebase Admin SDK 集成
- AI 驱动的漏洞分析(Claude API)
- 与第三方安全工具集成(MobSF、OpenAI)
- 高级过滤与搜索能力
## 🎯 适用用户
本项目适用于:
| 用户类型 | 收益 |
|----------|------|
| **开发者** | 在开发过程中识别并修复漏洞 |
| **安全团队** | 监控和管理多个项目的安全性 |
| **DevOps 工程师** | 在 CI/CD 流水线中自动化安全扫描 |
| **组织** | 集中化漏洞管理与合规跟踪 |
| **企业** | 全面的安全情报与报告 |
## 📁 项目结构
```
vulnscan/
├── lib/ # Flutter frontend code
│ ├── main.dart # App entry point
│ ├── config/ # Configuration & routing
│ │ ├── constants/ # App constants
│ │ ├── routing/ # Navigation routes
│ │ └── theme/ # UI themes
│ ├── data/ # Data layer
│ │ ├── datasources/ # API calls & local storage
│ │ ├── models/ # Data models
│ │ └── repositories/ # Business logic
│ ├── domain/ # Domain layer
│ │ ├── entities/ # Core business objects
│ │ ├── failures.dart # Error handling
│ │ └── usecases/ # Use cases
│ ├── presentation/ # UI layer
│ │ ├── providers/ # State management (Riverpod)
│ │ ├── screens/ # UI screens
│ │ └── widgets/ # Reusable components
│ ├── services/ # Core services
│ │ ├── http_client_service.dart # API client
│ │ └── pdf_export_service.dart # PDF export
│ └── utils/ # Utilities
│ ├── extensions/ # Dart extensions
│ ├── formatters/ # Data formatters
│ └── validators/ # Input validators
│
├── test/ # Flutter tests
│ └── widget_test.dart # Widget tests
│
├── android/ # Android-specific code
├── ios/ # iOS-specific code
├── windows/ # Windows desktop code
├── linux/ # Linux desktop code
├── macos/ # macOS desktop code
├── web/ # Web build configuration
│
├── pubspec.yaml # Flutter dependencies & config
├── analysis_options.yaml # Dart linting rules
└── README.md # This file
vulnscan-backend/ # Backend folder (separate)
├── main.py # FastAPI app entry point
├── requirements.txt # Python dependencies
├── .env # Environment variables
├── .env.example # Example env file
├── routes/ # API endpoints
├── models/ # Data models
├── services/ # Business logic
└── utils/ # Helper utilities
```
## 🖥️ 系统要求
### 前端(Flutter)
- **操作系统**:Windows 10+、macOS 10.15+、Linux(Ubuntu 18.04+)、iOS 11+、Android 5.0+
- **Flutter SDK**:3.10.8 或更高
- **Dart SDK**:3.10.8 或更高
- **内存**:最低 4GB(推荐 8GB)
- **磁盘空间**:2GB 可用空间
### 后端(Python FastAPI)
- **操作系统**:Windows、macOS、Linux
- **Python**:3.12 或更高
- **MongoDB**:4.6 或更高(本地或云端)
- **内存**:最低 2GB(推荐 4GB)
- **磁盘空间**:1GB 可用空间
### 必需服务
- **Firebase 项目** - 用于身份验证
- **MongoDB 数据库** - 用于数据存储
- **Claude API 密钥** - 用于 AI 驱动的分析
- **OpenAI API 密钥**(可选) - 用于额外分析
- **MobSF API**(可选) - 用于移动应用扫描
## 📦 安装指南
### 安装前置依赖
#### 1. **安装 Flutter**
**Windows:**
```
# 从 https://flutter.dev/docs/get-started/install/windows 下载 Flutter
# 添加到 PATH 并验证安装
flutter --version
```
**macOS:**
```
brew install flutter
flutter --version
```
**Linux(Ubuntu):**
```
sudo apt-get update
sudo apt-get install -y curl git xz-utils zip libglu1-mesa clang cmake ninja-build pkg-config libgtk-3-dev
# 从 https://flutter.dev/docs/get-started/install/linux 下载并解压 Flutter
flutter --version
```
#### 2. **安装 Python 3.12**
**Windows:**
```
# 从 https://www.python.org/downloads/ 下载
# 安装时,请勾选“将 Python 添加到 PATH”
python --version
```
**macOS:**
```
brew install python@3.12
python3.12 --version
```
**Linux(Ubuntu):**
```
sudo apt-get update
sudo apt-get install -y python3.12 python3.12-venv python3.12-dev
python3.12 --version
```
#### 3. **安装 MongoDB**
**选项 A:本地安装**
- 从 https://www.mongodb.com/try/download/community 下载
- 按照操作系统指南安装
- 验证:`mongod --version`
**选项 B:MongoDB Atlas(云端)**
- 在 https://www.mongodb.com/cloud/atlas 创建账户
- 创建集群并获取连接字符串
- 在 `.env` 文件中更新 MongoDB URI
#### 4. **获取 API 密钥**
- **Firebase**:https://console.firebase.google.com/
- **Claude API**:https://console.anthropic.com/
- **OpenAI**(可选):https://platform.openai.com/
## 🚀 后端设置
### 步骤 1:进入后端目录
```
# Windows
cd "c:\final year\VulnScan Backend\vulnscan-backend"
# macOS/Linux
cd ~/path-to/vulnscan-backend
```
### 步骤 2:创建 Python 虚拟环境
```
# Windows
python3.12 -m venv venv
.\venv\Scripts\Activate.ps1
# macOS/Linux
python3.12 -m venv venv
source venv/bin/activate
```
### 步骤 3:安装依赖
```
pip install -r requirements.txt
```
**注意**:如果遇到 `pydantic-core` 错误,请确保使用 Python 3.12(而非 3.14)。Python 3.14 缺少预编译轮子。
### 步骤 4:配置环境变量
```
# 复制示例文件
cp .env.example .env
# 使用您的凭据编辑 .env:
```
编辑 `.env` 文件并填入实际凭证:
```
# Firebase 配置
FIREBASE_PROJECT_ID=vulnscan-finalyear
FIREBASE_PRIVATE_KEY=
FIREBASE_CLIENT_EMAIL=
# MongoDB 配置
MONGODB_URI=mongodb://localhost:27017
MONGODB_DB_NAME=vulnscan
# API 密钥
CLAUDE_API_KEY=
OPENAI_API_KEY=
MOBSF_API_KEY=
# 服务器配置
DEBUG=true
HOST=0.0.0.0
PORT=8000
TEMP_DIR=/tmp/vulnscan
```
### 步骤 5:启动 MongoDB
```
# 如果本地运行:
mongod
# 如果使用 MongoDB Atlas,请确保 .env 中的 URI 正确
```
### 步骤 6:运行后端服务
```
python3.12 -m uvicorn main:app --reload --port 8000
```
预期输出:
```
INFO: Uvicorn running on http://0.0.0.0:8000
INFO: Application startup complete
```
### 步骤 7:验证后端
```
# 在新终端中
curl http://localhost:8000/
curl http://localhost:8000/docs # SwaggerUI documentation
```
## 📱 前端设置
### 步骤 1:进入前端目录
```
cd c:\final year\VulnScan Desktop\vulnscan
```
### 步骤 2:获取 Flutter 依赖
```
flutter pub get
```
### 步骤 3:检查已连接设备
```
flutter devices
```
示例输出:
```
2 connected devices:
AOSP on IA Emulator (emulator-5554) • emulator-5554 • android-x86 • Android 11 (API 30)
Chrome (web) • chrome • web-javascript • unknown
```
### 步骤 4:运行代码分析
```
flutter analyze
```
### 步骤 5:运行测试
```
flutter test
flutter test --coverage # With coverage report
```
## 🎮 运行应用
### 移动端(Android)
```
flutter run -d emulator-5554
```
### 移动端(iOS - 仅 macOS)
```
flutter run -d
```
### 桌面端(Windows)
```
flutter run -d windows
```
### 桌面端(Linux)
```
flutter run -d linux
```
### 桌面端(macOS)
```
flutter run -d macos
```
### Web
```
flutter run -d chrome
```
### 发布版本
```
# Android APK
flutter build apk --release
# iOS 应用
flutter build ios --release
# Windows 桌面
flutter build windows --release
# Web
flutter build web --release
# Linux 桌面
flutter build linux --release
```
## 📚 API 文档
后端运行后,访问:
- **Swagger UI**:http://localhost:8000/docs
- **ReDoc**:http://localhost:8000/redoc
- **OpenAPI JSON**:http://localhost:8000/openapi.json
### 主要 API 端点
| 方法 | 端点 | 描述 |
|------|------|------|
| POST | `/auth/login` | 用户登录 |
| POST | `/auth/register` | 用户注册 |
| POST | `/scans/` | 创建新扫描 |
| GET | `/scans/` | 列出所有扫描 |
| GET | `/scans/{id}` | 获取扫描详情 |
| GET | `/ans/{id}/report` | 下载报告 |
| POST | `/admin/users` | 管理用户 |
| GET | `/health` | 健康检查 |
## 💻 开发流程
### 后端开发
```
# 激活虚拟环境
source venv/bin/activate # macOS/Linux
.\venv\Scripts\Activate.ps1 # Windows
# 安装新包
pip install package-name
pip freeze > requirements.txt
# 使用自动重载运行服务器
python3.12 -m uvicorn main:app --reload --port 8000
# 运行测试
pytest
# 代码质量检查
pylint main.py
black main.py
```
### 前端开发
```
# 获取依赖项
flutter pub get
# 使用热重载运行
flutter run
# 格式化代码
flutter format .
# 分析代码
flutter analyze
# 生成构建文件
flutter pub run build_runner build
# 创建发布构建
flutter build apk --release
```
### Git 工作流
```
# 创建功能分支
git checkout -b feature/your-feature
# 修改并提交
git add .
git commit -m "feat: add new feature"
# 推送到远程
git push origin feature/your-feature
# 在 GitHub 上创建拉取请求
```
## 🐛 常见问题
### 后端问题
**问题**:`No module named uvicorn`
```
# 解决方案:安装依赖项
pip install -r requirements.txt
```
**问题**:`pydantic-core compilation error`
```
# 解决方案:使用 Python 3.12 而非 3.14
python3.12 -m pip install -r requirements.txt
```
**问题**:`MongoDB connection refused`
```
# 解决方案:本地启动 MongoDB
mongod
# 或使用正确的 MongoDB Atlas URI 更新 .env
MONGODB_URI=mongodb+srv://user:pass@cluster.mongodb.net/
```
**问题**:Firebase 凭证错误
```
# 解决方案:验证 .env 文件是否包含正确的 Firebase 凭据
# 从 Firebase 控制台下载服务账户密钥
```
### 前端问题
**问题**:`Flutter not found`
```
# 解决方案:将 Flutter 添加到 PATH
export PATH="$PATH:`pwd`/flutter/bin" # macOS/Linux
```
**问题**:设备未检测到
```
# 解决方案:
flutter devices
flutter config --android-sdk /path/to/sdk
```
**问题**:构建缓存问题
```
# 解决方案:清理并重建
flutter clean
flutter pub get
flutter run
```
## 🤝 贡献指南
我们欢迎贡献!请按以下步骤操作:
1. **Fork 本仓库**
2. **创建功能分支**:`git checkout -b feature/amazing-feature`
3. **提交更改**:`git commit -m "Add amazing feature"`
4. **推送到分支**:`git push origin feature/amazing-feature`
5. **创建合并请求**
### 贡献规范
- 遵循现有代码风格
- 为新功能添加测试
- 更新文档
- 保持原子性提交并附上清晰描述
- 确保代码通过分析:`flutter analyze`、`pylint`、`black`
## 📄 许可证
本项目采用 **MIT 许可证** - 详见 [LICENSE](LICENSE) 文件。
## 👥 支持与联系
- **问题反馈**:[GitHub Issues](https://github.com/yourname/vulnscan/issues)
- **讨论**:[GitHub Discussions](https://github.com/yourname/vulnscan/discussions)
- **邮箱**:your-email@example.com
## 🙏 感谢
- Flutter 团队提供的出色框架
- FastAPI 提供的高性能后端
- Firebase 提供的认证服务
- MongoDB 提供的数据库解决方案
- Claude AI 提供的漏洞分析
## 📊 项目统计
- **前端**:Flutter + Dart
- **后端**:FastAPI + Python 3.12
- **数据库**:MongoDB
- **认证**:Firebase
- **平台**:Android、iOS、Windows、Linux、macOS、Web
- **状态**:开发中
**最后更新**:2026 年 4 月
**版本**:1.0.0
用心 ❤️ 为注重安全的开发者打造
标签:Admin Panel, Authentication, AV绕过, Cloud Backend, Cross-Platform, Dark Theme, Developer Tools, FastAPI, Firestore, Flutter, Mobile Security, MongoDB, Payment Integration, PDF Export, Razorpay, Security Scanning, Security Tools, SEO, Vulnerability Analysis, Vulnerability Scanner, 逆向工具