ArthurFosuSamuel/web-scanner

GitHub: ArthurFosuSamuel/web-scanner

一个基于 Flask 的只读式 Web 安全配置审计工具,通过检查安全标头、Cookie、TLS 证书等常见配置问题并长期追踪修复状态,帮助开发者持续管理站点安全风险。

Stars: 0 | Forks: 0

# 配置审计 — Web 应用漏洞扫描器 + 修复追踪器 一个小型 Flask 站点,针对 URL 执行**只读配置审计**,提供通俗易懂的修复步骤,并在本地 SQLite 数据库(`audit.db`,自动创建)中**长期追踪问题**。它检查: - 安全标头(CSP、HSTS、X-Frame-Options、X-Content-Type-Options、Referrer-Policy、Permissions-Policy) - Cookie 标志(Secure / HttpOnly / SameSite) - TLS 证书的有效性、过期时间和协议版本 - 服务器/框架标头暴露(Server、X-Powered-By 等) - 一些常见的暴露路径(`.git/config`、`.env`、备份文件等) 它**不会**发送漏洞利用 payload、进行暴力破解或尝试 注入攻击 —— 仅发送普通的 GET 请求,与浏览器发送的请求相同。 **仅扫描您拥有或获得明确授权进行测试的站点。** ## 在本地运行 ``` cd vulnscanner python3 -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate pip install -r requirements.txt python app.py ``` 然后打开 **http://127.0.0.1:5050** 并输入 URL。 ## 修复追踪 每次扫描都会保存到 `audit.db`(SQLite,首次运行时自动创建): - **新问题**将被记录为 `open`。 - **重新扫描同一目标**时会与已追踪的内容进行对比: - 不再出现且处于打开状态的问题将被**自动解决** - 被标记为已解决但再次出现的问题将被**重新打开** - 访问导航栏中的 **修复追踪器**(Remediation tracker)以查看每次扫描中的所有问题,并按目标/状态进行筛选,还可以: - **标记为已修复** — 手动关闭问题 - **接受风险 / 忽略** — 在不删除历史记录的情况下将其抑制(添加备注,例如工单链接或理由) - **重新打开** — 撤销上述任意操作 这为您提供了一条审计追踪记录:发现了什么、何时发现、目前是否仍处于打开状态,以及是谁/基于什么决定接受该风险。 ## 项目布局 ``` vulnscanner/ ├── app.py # Flask routes (scan form + tracker) ├── scanner.py # All scan logic (headers, cookies, TLS, paths) ├── db.py # SQLite persistence + remediation-tracking logic ├── templates/ │ ├── index.html # Scan form + one-off report │ └── history.html # Remediation tracker view ├── static/ │ └── style.css └── requirements.txt ``` ## 扩展说明 - 在 `scanner.py` 中编写 `check_*` 函数并从 `run_scan()` 中调用,即可添加新的检查。 - 每个发现都是一个 `Finding(id, title, severity, detail, remediation)` —— 严重程度分为 `high | medium | low | info | pass`。 - 要一次性扫描多个站点,您可以遍历 URL 列表并直接从脚本中调用 `run_scan(url)`,无需 Flask。
标签:Flask, SQLite, Web安全, 安全基线检查, 漏洞跟踪, 蓝队分析, 调试辅助, 逆向工具