anshikasajwan/Vulnerability-Scanner-Mini-Project-

GitHub: anshikasajwan/Vulnerability-Scanner-Mini-Project-

一款基于 Python 的 Web 安全配置检查工具,通过双界面审计 HTTPS、HTTP 安全标头及 SSL 证书状态,帮助用户发现防御性配置缺陷并生成风险报告。

Stars: 0 | Forks: 0

# 🔍漏洞扫描器 ## 📌 项目概述 **Vulnerability-Scanner** 是一款基于 Python 的网络安全工具,用于评估 Web 应用程序的被动安全态势。它同时提供了**交互式 Streamlit Web 仪表板**和**命令行工具**,可检查目标网站是否通过 HTTPS 实施安全通信,评估关键的 HTTP 安全标头,并验证 SSL/TLS 证书的有效性和过期时间。 通过分析防御性标头和传输安全性,该工具可帮助开发者和安全爱好者了解常见的 Web 漏洞(如 Clickjacking、MIME-sniffing 和 Cross-Site Scripting),并实施安全的服务器配置。 ## 🎯 目标 * 验证通过 **HTTPS** 的安全通信。 * 评估基本 **HTTP Security Headers** 的实施情况。 * 检查 **SSL/TLS 证书**的颁发者详情和过期时间。 * 根据配置缺陷计算整体**风险等级**。 * 同时提供**可视化 Web 仪表板**和**CLI 界面**。 * 导出清晰、可下载的**漏洞评估报告**。 * 获取**Web 安全工程**和**防御性配置**的实践经验。 ## ✨ 功能 * 🌐 **双界面:** 可在交互式 **Streamlit Web 仪表板**或轻量级**命令行界面 (CLI)** 之间进行选择。 * ✅ **HTTPS 验证:** 检测未加密的 HTTP 回退或弱重定向。 * ✅ **安全标头审计:** 检查是否存在关键安全控制: * `Strict-Transport-Security` (HSTS) * `Content-Security-Policy` (CSP) * `X-Frame-Options` * `X-Content-Type-Options` * `Referrer-Policy` * `Permissions-Policy` * ✅ **SSL/TLS 检查:** 提取证书颁发者详情并计算距离过期的剩余天数。 * ✅ **服务器信息暴露检查:** 识别服务器标头是否泄露了软件详情。 * ✅ **自动化风险评分:** 分配风险等级(`Minimal`、`Low`、`Medium`、`High`)。 * ✅ **报告导出:** 通过 UI 直接下载结构化的安全评估报告,或在 CLI 模式下将其保存到磁盘中。 ## 🛠 使用的技术 * **Python 3.x** * **Streamlit** – 用于交互式 UI 指标、选项卡和布局的 Web 应用程序框架。 * **`requests`** – 处理 HTTP/HTTPS 通信和标头提取。 * **`ssl` & `socket`** – 用于检查 TLS 证书的标准库模块。 * **`urllib.parse`** – 清理和解析主机名/URL。 * **`datetime`** – 计算证书过期倒计时。 ## 📂 项目结构 ``` WebSecurityAnalyzer/ │ ├── app.py # Interactive Streamlit Web Application ├── main.py # Command-Line Interface (CLI) entry point ├── scanner.py # Core logic for HTTPS, headers, SSL, and risk scoring ├── report.py # Report generation and formatting utilities ├── utils.py # URL normalization and helper functions ├── requirements.txt # Project dependencies └── README.md # Project documentation ``` ## ⚙️ 工作原理 ``` User Inputs URL (CLI or Streamlit UI) │ ▼ Validate & Normalize URL (utils.py) │ ▼ Retrieve Response & Inspect Headers (scanner.py) │ ▼ Establish TLS Socket & Inspect Certificate (scanner.py) │ ▼ Calculate Risk Score & Actionable Recommendations (scanner.py) │ ▼ Render Visual Metrics (app.py) OR Terminal Output (main.py) │ ▼ Export Assessment Report (.txt) ``` ## 📊 示例输出 ### 1. Streamlit Web 界面 (`app.py`) * **关键指标行:** 用于显示 HTTPS 状态、缺失标头数量、SSL 剩余天数和整体风险徽章的即时视觉指示器。 * **有组织的选项卡:** 采用选项卡式分类,涵盖 HTTP 安全标头、SSL 证书详情以及带有“一键下载”按钮的原始漏洞报告。 ### 2. 命令行报告输出 (`main.py`) ``` ============================================= WEB SECURITY ASSESSMENT REPORT ============================================= Generated: 2026-07-29 12:30:00 Target: [https://example.com](https://example.com) Server: nginx/1.18.0 --------------------------------------------- HTTPS SUPPORT: Status: PASS --------------------------------------------- SECURITY HEADERS: ✓ Strict-Transport-Security (Present) ✗ Content-Security-Policy (Missing) ✓ X-Frame-Options (Present) ✗ X-Content-Type-Options (Missing) ✓ Referrer-Policy (Present) ✗ Permissions-Policy (Missing) --------------------------------------------- SSL CERTIFICATE DETAILS: Issuer: Let's Encrypt Expires: 2026-09-15 (48 days remaining) --------------------------------------------- OVERALL RISK LEVEL: MEDIUM --------------------------------------------- RECOMMENDATIONS: • Configure the 'Content-Security-Policy' header to strengthen web security posture. • Configure the 'X-Content-Type-Options' header to strengthen web security posture. • Configure the 'Permissions-Policy' header to strengthen web security posture. ============================================= ``` ## 📚 学习到的安全概念 * **传输层安全性 (TLS):** 传输中的加密如何防止窃听和篡改。 * **HTTP 安全控制:** * **HSTS:** 通过强制仅使用 HTTPS 连接来缓解 SSL 剥离攻击。 * **CSP:** 防止 Cross-Site Scripting (XSS) 和数据注入攻击。 * **X-Frame-Options:** 保护用户免受 Clickjacking 攻击。 * **X-Content-Type-Options:** 防止 MIME-sniffing 漏洞。 * **模块化软件工程:** 分离业务逻辑 (`scanner.py`)、报告生成 (`report.py`) 和用户界面 (`app.py` / `main.py`)。 ## 🚀 未来增强功能 * 📄 **PDF 导出:** 使用 `ReportLab` 生成带有图表的可下载 PDF 报告。 * ⚡ **异步扫描:** 使用 `aiohttp` 同时扫描多个域名的 endpoint。 * 🛡️ **子域名发现:** 通过 Certificate Transparency 日志 进行被动枚举。 ## ▶️ 安装与运行应用 1. **克隆仓库:** ``` git clone https://github.com/anshikasajwan/Vulnerability-Scanner-Mini-Project- cd Vulnerability-Scanner-Mini-Project- ``` 2. **安装依赖项:** ``` pip install -r requirements.txt ``` 3. **通过 Streamlit Web 仪表板运行:** ``` streamlit run app.py ``` 4. **通过命令行界面 (CLI) 运行:** ``` python main.py ``` ## 📜 许可证与道德规范使用 本项目仅出于**教育和实习目的**开发。它依赖于公开暴露的标准 HTTP 响应和证书数据来评估 Web 安全配置。 ``` ```
标签:DInvoke, Kubernetes, Python, Streamlit, Web安全, 加密, 插件系统, 无后门, 漏洞扫描器, 网络安全, 蓝队分析, 访问控制, 逆向工具, 隐私保护