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安全, 实时处理, 无后门, 蓝队分析, 被动扫描, 逆向工具