Brandonp584/web-vulnerability-scanner
GitHub: Brandonp584/web-vulnerability-scanner
一款基于 Python 的轻量级 Web 安全扫描器,通过分析 HTTP 响应检测缺失的安全标头与配置弱点,并生成带评分的结构化报告。
Stars: 0 | Forks: 0
# Web 漏洞扫描器
一个基于 Python 的 Web 安全扫描器,用于识别常见的 Web 安全配置错误、缺失的安全标头以及不安全的 Web 配置。
## 概述
Web 漏洞扫描器是作为一个网络安全作品集项目开发的,旨在展示 Web 安全测试、HTTP 分析、Python 自动化、漏洞报告和防御性安全实践。
该扫描器会分析 Web 响应,评估与安全相关的 HTTP 标头,识别配置弱点,计算安全得分,并生成 JSON 和 HTML 报告。
## 真实环境测试
该扫描器针对我托管在 Netlify 上的个人作品集网站进行了测试。
### 初始评估
初始扫描识别出多个缺失的安全标头,并生成了 **74/100** 的安全得分。
检测到的问题包括:
* 缺失 Content-Security-Policy
* 缺失 X-Frame-Options
* 缺失 X-Content-Type-Options
* 缺失 Referrer-Policy
* 缺失 Permissions-Policy
### 修复前

### 修复
缺失的安全标头是使用 Netlify 的 `_headers` 配置文件实现的。
添加的标头:
* Content-Security-Policy
* X-Frame-Options
* X-Content-Type-Options
* Referrer-Policy
* Permissions-Policy
### 验证
在实施安全控制后,对该网站进行了重新扫描。
安全得分从 **74/100** 提升至 **99/100**,仅留下一个与 Netlify 服务器标头相关的低严重性信息性发现。
### 修复后

### 终端输出

这展示了完整的安全评估流程:
1. 漏洞识别
2. 安全修复
3. 通过重新扫描进行验证
4. 可量化的安全改进
## 功能
### Web 安全分析
该扫描器目前可检测:
* 缺失 Content-Security-Policy 标头
* 缺失 X-Frame-Options 标头
* 缺失 X-Content-Type-Options 标头
* 缺失 Strict-Transport-Security 标头
* 缺失 Referrer-Policy 标头
* 缺失 Permissions-Policy 标头
* 服务器信息泄露
* 使用 HTTP 而非 HTTPS
### 报告
* 基于终端的漏洞报告
* 导出 JSON 报告
* 导出 HTML 报告
* 安全得分计算 (0–100)
* 严重性摘要
* 扫描元数据和时间戳
### 自动化
* 自动化 URL 扫描
* 结构化报告
* 可复用的安全评估工作流
## 使用示例
### 扫描网站
```
python main.py --url https://example.com
```
### 导出 JSON 报告
```
python main.py --url https://example.com --json report.json
```
### 导出 HTML 报告
```
python main.py --url https://example.com --html report.html
```
### 导出 JSON 和 HTML 报告
```
python main.py --url https://example.com --json report.json --html report.html
```
## JSON 输出示例
```
{
"tool": "Web Vulnerability Scanner",
"version": "1.0.0",
"target_url": "https://example.com",
"scan_summary": {
"total_findings": 7,
"security_score": 69
}
}
```
## 安全评分
每项发现都会根据严重程度增加相应的风险扣分:
| 严重程度 | 扣分 |
| -------- | ------ |
| 严重 | 20 |
| 高 | 10 |
| 中 | 5 |
| 低 | 1 |
安全得分起始为 **100**,并根据分析期间检测到的发现进行扣减。
## 项目结构
```
web-vulnerability-scanner/
│
├── images/
│
├── scanner/
│ ├── __init__.py
│ ├── checks.py
│ ├── engine.py
│ ├── exporter.py
│ └── reporter.py
│
├── tests/
│
├── main.py
├── README.md
├── requirements.txt
└── .gitignore
```
## 使用的技术
* Python
* Requests
* JSON
* HTML
* Git
* GitHub
## 道德规范使用
本工具仅供防御性安全目的使用。
它仅应用于您拥有或获得明确授权进行评估的网站。
该扫描器执行被动的安全检查,旨在用于教育、防御和作品集开发目的。
## 未来改进
计划的增强功能包括:
* Cookie 安全标志分析
* 安全标头建议
* 额外的 HTTP 安全检查
* 自动化单元测试
* 集成 GitHub Actions CI/CD
* 导出 SARIF 报告
* 历史扫描比较
* 扩展漏洞检测
## 作者
**Brandon Powell**
信息技术高等教育文凭(全栈 Web 开发)
未来的信息技术学士(计算机科学与网络安全)
有志于成为网络安全专业人士,对安全软件开发、应用安全、漏洞管理和渗透测试充满兴趣。
标签:Homebrew安装, HTTP分析, Python, Web安全扫描器, 多模态安全, 字符串匹配, 安全基线检查, 密码管理, 无后门, 逆向工具