ALFA1024/Website-Vulnerability-Scanner
GitHub: ALFA1024/Website-Vulnerability-Scanner
一款具备报告生成与定时任务功能的全栈网站安全扫描工具,专注于 SSL/TLS 配置及安全响应头检测。
Stars: 0 | Forks: 0
# 网站漏洞扫描器
一个用于扫描网站 SSL/TLS 和安全头漏洞的全栈 Web 应用程序,具备报告生成和定时扫描功能。
## 功能特性
- **手动扫描**:按需扫描任意网站的漏洞
- **SSL/TLS 扫描**:检测证书问题、弱 TLS 版本和有效性问题
- **安全头分析**:检查缺失或配置错误的安全头
- **仪表盘**:查看所有扫描和漏洞统计信息
- **报告生成**:将扫描结果导出为 PDF、HTML 或 JSON
- **定时扫描**:设置每日、每周或每月的自动扫描计划
- **漏洞追踪**:追踪漏洞的历史记录
## 项目结构
```
Website Vulnerability Scanner/
├── backend/
│ ├── src/
│ │ ├── server.js # Express server entry point
│ │ ├── scanners/ # Scanning modules
│ │ │ ├── sslScanner.js # SSL/TLS vulnerability scanner
│ │ │ └── headerScanner.js # Security headers scanner
│ │ ├── routes/ # API routes
│ │ │ ├── scanRoutes.js # Scan endpoints
│ │ │ ├── reportRoutes.js # Report generation
│ │ │ └── scheduleRoutes.js # Schedule management
│ │ └── utils/
│ │ └── database.js # Database operations
│ ├── package.json
│ ├── .env
│ └── .gitignore
├── frontend/
│ ├── src/
│ │ ├── App.js # Main React component
│ │ ├── index.js # React entry point
│ │ └── components/ # React components
│ │ ├── Header.js
│ │ ├── Navigation.js
│ │ ├── Scanner.js
│ │ ├── Dashboard.js
│ │ ├── Reports.js
│ │ └── Schedules.js
│ ├── public/
│ │ └── index.html
│ ├── package.json
│ └── .gitignore
├── README.md
└── .github/
└── copilot-instructions.md
```
## 安装说明
### 前置条件
- Node.js 14+ 和 npm
### 后端设置
1. 进入后端目录:
```
cd backend
```
2. 安装依赖项:
```
npm install
```
3. 创建一个包含配置的 `.env` 文件:
```
PORT=5000
NODE_ENV=development
```
4. 启动后端服务器:
```
npm run dev
```
后端将运行在 `http://localhost:5000`
### 前端设置
1. 进入前端目录:
```
cd frontend
```
2. 安装依赖项:
```
npm install
```
3. 启动开发服务器:
```
npm start
```
前端将运行在 `http://localhost:3000`
## API 端点
### 扫描
- `POST /api/scans/start` - 启动新扫描
- `GET /api/scans/:scanId` - 获取扫描结果
- `GET /api/scans` - 获取所有扫描记录
### 报告
- `GET /api/reports/:scanId/pdf` - 下载 PDF 报告
- `GET /api/reports/:scanId/html` - 查看 HTML 报告
- `GET /api/reports/:scanId/json` - 获取 JSON 数据
### 计划任务
- `POST /api/schedules/create` - 创建定时扫描
- `GET /api/schedules` - 获取所有活动的计划
- `POST /api/schedules/:scheduleId/stop` - 停止定时扫描
## 可检测的漏洞类型
### SSL/TLS 问题
- 证书过期
- 证书有效期
- 弱 TLS 版本(TLSv1, TLSv1.1)
- 缺少子域名支持
### 安全头问题
- 缺少 HSTS (Strict-Transport-Security)
- 缺少 X-Content-Type-Options
- 缺少 X-Frame-Options
- 缺少 Content-Security-Policy
- 弱 HSTS 配置
- 不安全的 Cookie(缺少 Secure/HttpOnly 标志)
- 信息泄露头
## 使用技术
### 后端
- Node.js & Express.js
- SQLite3 用于数据持久化
- node-cron 用于定时任务
- axios 用于 HTTP 请求
- pdfkit 用于 PDF 生成
### 前端
- React 18
- React Router 用于导航
- Axios 用于 API 调用
- CSS3 用于样式
## 开发
### 后端开发
```
cd backend
npm run dev # Runs with nodemon for auto-reload
```
### 前端开发
```
cd frontend
npm start # Runs with React dev server
```
## 生产环境构建
### 后端
```
cd backend
npm start # Runs production server
```
### 前端
```
cd frontend
npm run build # Creates optimized production build
```
## 许可证
MIT License
## 支持
如有问题或疑问,请在仓库中创建 issue。
标签:Dashboard, Express, HTTPS, MITM代理, PDF导出, React, SSL/TLS检测, Syscalls, TLS, Web安全, 全栈应用, 安全头部分析, 定时任务, 密码管理, 插件系统, 无线安全, 漏洞报告, 网站漏洞扫描器, 网络安全, 自定义脚本, 蓝队分析, 证书验证, 防御工具, 隐私保护