FrancescoPetillo/Web-Security-Scanner
GitHub: FrancescoPetillo/Web-Security-Scanner
基于 FastAPI 和 React 的自动化 Web 安全扫描器,可检测 XSS/SQLi 漏洞、检查安全 header 并结合 VirusTotal 进行域名信誉评分。
Stars: 0 | Forks: 0
# 🛡️ Web Security Scanner
一款用于分析网站安全性的现代应用程序。它可以检测漏洞、检查安全 header、评估域名信誉,并提供安全加固(hardening)建议。
## ✨ 功能
- **HTTP Header 扫描** - 检查是否存在关键的安全 header(CSP、HSTS 等)
- **智能评分** - 根据漏洞和配置动态计算安全性分数
- **信誉分析** - 检查域名是否被标记为恶意或可疑
- **详细报告** - 提供包含漏洞类别和修复建议的完整报告
- **直观的界面** - 现代且响应式的 React 仪表板
## 🖼️ 预览
### 首页
应用程序的初始界面,在此输入要分析的 URL 并开始扫描。

### 分析结果
扫描后生成的报告,包含安全评分、风险等级和发现的漏洞。

## 🏗️ 架构
```
Web-Security-Scanner/
├── frontend/ # React + Vite + React Router
│ ├── src/
│ │ ├── pages/ # Home (input URL) e Results (report)
│ │ ├── App.jsx
│ │ └── main.jsx
│ ├── package.json
│ └── vite.config.js
│
├── backend/ # FastAPI + Python
│ ├── main.py # Server FastAPI con endpoint /scan
│ ├── requirements.txt
│ ├── Dockerfile
│ ├── scanner/
│ │ ├── engine.py # Logica principale di scansione
│ │ ├── scoring.py # Calcolo score di sicurezza
│ │ ├── reputation.py # Verifica reputazione dominio
│ │ └── ...
│ └── venv/
│
├── engine.py # Entry point principale
└── README.md
```
## 🚀 快速开始
### 前置条件
- **Node.js** 18+(用于前端)
- **Python** 3.10+(用于后端)
- **Docker**(可选,推荐)
### 本地安装
#### 1️⃣ 后端
```
cd backend
python -m venv venv
# Windows
venv\Scripts\activate
# Linux/Mac
source venv/bin/activate
pip install -r requirements.txt
```
#### 2️⃣ 前端
```
cd frontend
npm install
```
#### 3️⃣ 启动应用
**终端 1 - 后端:**
```
cd backend
source venv/bin/activate # o venv\Scripts\activate su Windows
uvicorn main:app --reload --port 8000
```
**终端 2 - 前端:**
```
cd frontend
npm run dev
```
应用程序将通过 `http://localhost:5173` 访问
### 使用 Docker 安装
```
docker build -t web-security-scanner ./backend
docker run -p 8000:8000 web-security-scanner
```
## 📡 API Endpoints
### POST `/scan`
对指定的 URL 启动安全扫描。
**Request:**
```
{
"url": "https://example.com"
}
```
**Response:**
```
{
"status": "done",
"url": "https://example.com",
"score": 85,
"risk_level": "medium",
"summary": {
"message": "No critical vulnerabilities detected...",
"vulnerabilities": 2,
"hardening": 3,
"reputation_status": "Reputation clean"
},
"findings": [
{
"title": "Missing CSP",
"type": "hardening",
"category": "headers",
"severity": "Medium",
"confidence": "low"
}
],
"reputation": {
"malicious": 0,
"suspicious": 0
}
}
```
### GET `/`
健康检查(Health check)endpoint。
## 🎯 发现类别
### 漏洞 (Vulnerability)
已确认的安全问题,需要立即修复。
### 加固 (Hardening)
为提升安全性而推荐的最佳实践和配置。
## 📊 风险等级
- 🟢 **低 (Low)** - Score 80-100:配置安全
- 🟡 **中 (Medium)** - Score 50-79:建议进行改进
- 🔴 **高 (High)** - Score <50:检测到严重漏洞
## 🛠️ 技术栈
### 后端
- **FastAPI** - 异步 Web 框架
- **Pydantic** - 数据验证
- **Playwright** - Web 自动化
- **Requests** - HTTP 客户端
- **Uvicorn** - ASGI 服务器
### 前端
- **React** 19.2 - UI 库
- **Vite** - 构建工具
- **React Router** - 客户端路由
- **ESLint** - 代码 linting
## 📝 开发
### 前端 Linting
```
cd frontend
npm run lint
```
### 前端构建
```
cd frontend
npm run build
```
### 代码格式化
本项目遵循 Python 的 PEP8 规范和 JavaScript 的 ESLint 规范。
## 🔐 安全
- ⚠️ 调试阶段开放 CORS - 需在生产环境中进行配置
- 服务器端 URL 验证
- 健壮的异常处理
- HTTP 请求设置 Timeouts
## 🐛 故障排除
### 错误:"CORS not allowed"
确保后端正在 `http://localhost:8000` 上运行
### 端口被占用
```
# Frontend (更改端口)
npm run dev -- --port 5174
# Backend
uvicorn main:app --port 8001
```
### Python Import 错误
```
pip install --upgrade -r backend/requirements.txt
```
## 📦 生产环境构建
```
# Frontend
cd frontend
npm run build
# 输出至: frontend/dist/
# Backend
# 使用提供的 Dockerfile 或首选的 deployment
```
## 📄 许可证
本项目按“原样”提供,仅用于教育目的和经授权的安全测试。
**版本:** 0.0.0
**最后更新:** 2026年5月
**作者:** Francesco Petillo 和 Gabriele Esposito
标签:AV绕过, CISA项目, DOE合作, FastAPI, React, Syscalls, Web安全扫描器, 威胁情报, 安全基线检查, 开发者工具, 特征检测, 请求拦截, 逆向工具