EHArviv/python-security-headers-checker
GitHub: EHArviv/python-security-headers-checker
一款 Python 编写的 HTTP 安全响应头自动化检查工具,能够检测缺失的防护措施、计算安全评分并生成适配 SOC/SIEM 工作流的多格式报告。
Stars: 0 | Forks: 0
# Python 安全响应头检查器
一款 Python 安全自动化工具,用于检查网站的 HTTP 安全响应头,识别缺失的防护措施,计算安全评分,分配风险等级,并生成多种报告格式,以适用于 IT、安全、SOC 和 SIEM 工作流。
## 功能特性
* 检查 HTTP 安全响应头
* 检测缺失的安全防护措施
* 计算安全评分
* 分配风险等级
* 分析单个 URL
* 从文件分析多个 URL
* 生成 CSV 报告
* 生成 TXT 摘要报告
* 生成 JSON 报告
* 生成安全发现
* 生成用于 SIEM 式摄取的 NDJSON 事件
* 针对缺失的响应头提供建议
* 通过命令行运行
* 包含 GitHub Actions 工作流
## 检查的安全响应头
该工具会检查以下 HTTP 安全响应头:
* Strict-Transport-Security
* Content-Security-Policy
* X-Frame-Options
* X-Content-Type-Options
* Referrer-Policy
* Permissions-Policy
## 项目结构
```
python-security-headers-checker/
├── .github/
│ └── workflows/
│ └── python-check.yml
├── src/
│ └── headers_checker.py
├── sample_urls/
│ └── urls.txt
├── reports/
│ └── .gitkeep
├── README.md
├── requirements.txt
└── .gitignore
```
## 安装
安装所需的依赖:
```
pip install -r requirements.txt
```
## 用法
检查单个 URL:
```
python src/headers_checker.py https://example.com
```
从文件检查多个 URL:
```
python src/headers_checker.py --file sample_urls/urls.txt
```
## 生成的报告
该脚本会在本地的 `reports/` 文件夹中生成以下文件:
```
security_headers_report.csv
security_headers_summary.txt
security_headers_report.json
findings.json
events.ndjson
```
这些生成的报告文件会被 Git 忽略,不应提交到代码仓库中。
## 报告类型
### CSV 报告
```
security_headers_report.csv
```
用于基于电子表格的审查、筛选、排序和手动分析。
### TXT 摘要
```
security_headers_summary.txt
```
用于生成人类可读的扫描结果摘要。
### JSON 报告
```
security_headers_report.json
```
用于自动化、仪表板、API 或与其他工具的集成。
### JSON 安全发现
```
findings.json
```
用于以结构化格式呈现安全发现。
每项发现包含:
* 发现 ID
* 发现名称
* 严重性
* 目标 URL
* 详情
* 修复建议
### NDJSON 事件
```
events.ndjson
```
用于 SIEM 式的事件摄取。
每一行都是一个独立的 JSON 事件。
## 控制台输出示例
```
URL: https://example.com
Strict-Transport-Security: Missing
Content-Security-Policy: Missing
X-Frame-Options: Found
X-Content-Type-Options: Found
Referrer-Policy: Found
Permissions-Policy: Missing
Score: 3/6
Risk Level: Medium
```
## JSON 报告结构示例
```
{
"tool_name": "Python Security Headers Checker",
"report_type": "web_security_headers_assessment",
"generated_at": "2026-06-18T13:00:00+00:00",
"summary": {
"total_targets": 3,
"high_risk": 1,
"medium_risk": 2,
"low_risk": 0,
"unknown_risk": 0
},
"results": [
{
"url": "https://example.com",
"error": null,
"score": 3,
"total_headers": 6,
"risk_level": "Medium",
"missing_headers": [
"Strict-Transport-Security",
"Content-Security-Policy",
"Permissions-Policy"
]
}
]
}
```
## 安全发现示例
```
{
"id": "FINDING-001",
"name": "Missing Content-Security-Policy",
"severity": "Medium",
"target": "https://example.com",
"details": "The Content-Security-Policy header was not found in the HTTP response.",
"recommendation": "Implement a restrictive Content-Security-Policy to reduce XSS risk."
}
```
## NDJSON 事件示例
```
{"timestamp":"2026-06-18T13:00:00+00:00","event_type":"missing_security_header","target":"https://example.com","header":"Content-Security-Policy","severity":"Medium","message":"Missing security header: Content-Security-Policy"}
```
## 风险等级逻辑
该脚本会根据找到的必需响应头数量来计算风险等级。
```
All headers found → Low
Most headers found → Medium
Several headers missing → High
```
## 响应头建议
该工具针对缺失的响应头提供修复建议。
| 响应头 | 建议 |
| ------------------------- | ---------------------------------------------------------------------- |
| Strict-Transport-Security | 启用 HSTS 以强制使用 HTTPS 连接。 |
| Content-Security-Policy | 实施严格的 Content-Security-Policy 以降低 XSS 风险。 |
| X-Frame-Options | 将 X-Frame-Options 设置为 DENY 或 SAMEORIGIN 以降低点击劫持风险。 |
| X-Content-Type-Options | 将 X-Content-Type-Options 设置为 nosniff。 |
| Referrer-Policy | 设置严格的 Referrer-Policy,例如 strict-origin-when-cross-origin。 |
| Permissions-Policy | 限制浏览器功能,如相机、麦克风和地理位置。 |
## SOC / SIEM 输出
本项目生成安全运营中常用的多种输出格式:
* CSV:用于基于电子表格的审查
* TXT:用于人类可读的摘要
* JSON:用于自动化、仪表板和 API
* `findings.json`:用于结构化的安全评估发现
* `events.ndjson`:用于 SIEM/日志摄取工作流
## GitHub Actions
本项目包含一个 GitHub Actions 工作流,该工作流会在每次推送和拉取请求时运行自动化检查。
该工作流会执行以下操作:
* 安装项目依赖
* 检查 Python 语法
* 运行单个 URL 扫描
* 运行 URL 列表扫描
* 验证报告是否能成功生成
工作流文件:
```
.github/workflows/python-check.yml
```
## 环境要求
本项目使用:
* Python 3
* requests
## 展现的技能
* Python 自动化
* HTTP 请求
* Web 安全基础
* HTTP 安全响应头分析
* CSV 报告生成
* TXT 摘要生成
* JSON 报告生成
* NDJSON 事件生成
* 安全发现结构
* 命令行参数
* 风险评分
* 适配 SOC/SIEM 的输出格式
* GitHub Actions
* IT/安全自动化工作流
## 简历描述示例
开发了一款 Python 安全自动化工具,用于检查 HTTP 安全响应头、识别缺失的防护措施、计算风险等级、提供修复建议,并生成 CSV/TXT/JSON/NDJSON 报告,以服务于 Web 安全评估及 SOC/SIEM 工作流。
标签:HTTP安全头, Python, 子域名暴力破解, 无后门, 自动化检测, 逆向工具