tema64378/websec-scanner
GitHub: tema64378/websec-scanner
一款被动式网站安全配置审计工具,检查 HTTP 安全头、TLS、Cookie、CORS 及信息泄露并给出 A–F 评分。
Stars: 0 | Forks: 0
# 🔒 Web Security Scanner
网站安全配置被动审计:检查安全头、TLS 证书、cookie 标志、CORS 配置错误以及软件版本泄露,并根据具体建议给出 **A–F** 的评分。
## 检查内容
| 检查项 | 检查内容 |
|----------|-------------|
| **安全头** | HSTS, Content-Security-Policy, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy |
| **TLS** | 证书的有效性和有效期、协议版本(TLS < 1.2 标记为风险) |
| **Cookies** | 每个 cookie 的 Secure / HttpOnly / SameSite 标志 |
| **CORS** | wildcard `*`、Origin 反射、与 `Allow-Credentials` 的危险组合 |
| **信息泄露** | 暴露软件及其版本的标头(Server, X-Powered-By, …) |
## 安装
```
cd websec-scanner
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
```
## 使用方法
```
# 交互式:运行并输入地址(直接按 Enter 退出)
python cli.py
# 在控制台中用简单易懂的语言进行分析
python cli.py https://example.com
# 保存 HTML 报告(将在浏览器中打开;自动命名为 report_.html)
python cli.py example.com --html
python cli.py example.com --html my_report.html
# JSON(用于自动化/CI)
python cli.py example.com --json
```
API:
```
uvicorn api.main:app
curl "localhost:8000/scan?url=example.com"
```
## 评分
初始为 100 分,根据发现的问题进行扣分:高风险 −22,中风险 −11,低风险 −4。
评分标准:**A** ≥90 · **B** ≥80 · **C** ≥70 · **D** ≥55 · **F** 低于上述分数。
## 结构
| 路径 | 作用 |
|------|------|
| `websec/checks.py` | 具体的检查逻辑(标头、TLS、cookies、CORS、信息泄露) |
| `websec/scanner.py` | 执行调度 + 评分计算 |
| `websec/report.py` | 使用通俗语言在控制台输出报告(rich) |
| `websec/html_report.py` | 生成 HTML 报告 |
| `cli.py` | 命令行 |
| `api/main.py` | FastAPI `/scan` |
## 路线图
- [ ] 检查 http → https 重定向
- [ ] 基础解析 CSP 指令(unsafe-inline 等)
- [x] 导出为 HTML 报告
- [ ] 导出为 Markdown
- [ ] 批量模式(URL 列表)
标签:AV绕过, FastAPI, Python, Snort++, Web安全, 实时处理, 无后门, 蓝队分析, 被动扫描, 逆向工具