imxyanua/XyaVora-Scan

GitHub: imxyanua/XyaVora-Scan

XyaVora-Scan 是一款用于快速、被动扫描公共域名安全状况的开源工具,提供全面的DNS、SSL、HTTP头等检查。

Stars: 0 | Forks: 0

# XyaVora-扫描 [![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE) 一款开源的公共网站安全扫描器,用于快速、被动的域名侦察。 XyaVora-Scan 允许任何人扫描公共域名,无需创建账户。报告页面会立即打开,实时显示分析器进度,并随着 DNS、TLS、HTTP、头部信息、WHOIS、元数据、技术栈、爬取提示、cookies、security.txt、截图和评分检查的完成,逐步渲染出模块结果。 ## 检查内容 | 领域 | 详情 | |---|---| | 实时概览 | 就绪/运行中/出错模块计数以及早期的 HTTPS、HSTS、CSP、SPF、DMARC、HTTP 信号 | | 风险摘要 | 评分、等级、风险状态、优先级排列的发现以及评分明细 | | 数据质量 | 已验证、已观察、推断、不可用及错误证据摘要 | | DNS 记录 | A、AAAA、MX、NS、TXT 记录,TTL,SPF 和 DMARC 信号 | | 邮件安全 | MX、SPF 策略、DMARC 策略、对齐、报告 URI、证据 | | TLS / SSL | HTTPS 可用性、颁发者、主题、有效期、SANs、协议、密码套件 | | HTTP 概览 | 状态码、最终 URL、重定向、压缩、缓存头、响应大小 | | 安全头部 | HSTS、CSP、X-Frame-Options、X-Content-Type-Options、Referrer-Policy、Permissions-Policy | | WHOIS | 注册商、生命周期日期、域名服务器,以及可用的 DNSSEC | | 技术栈 | 框架、CMS、CDN、托管服务、分析工具、服务器线索、来源证据 | | Cookies | Secure、HttpOnly、SameSite、过期时间、警告信息 | | Security.txt | RFC 9116 发现以及 Contact/Policy/Encryption/Expires 字段解析 | | 页面元数据 | 标题、描述、规范 URL、Open Graph、favicon、robots 指令 | | 站点发现 | robots.txt、sitemap、爬取规则、用户代理 | | 截图 | 可选的桌面和移动端截图捕获,在核心报告数据生成后处理 | | 原始数据 | JSON 格式报告导出,用于进一步分析 | | 外部研究 | 指向第三方工具的链接,用于手动验证 | ## 实时扫描流程 1. 前端通过后端 API 启动扫描任务。 2. 报告路由立即打开,显示实时进度。 3. 每个分析器更新其自身的作业步骤,包含状态、持续时间、错误和部分数据。 4. 完成的模块用真实的报告卡片替换加载卡片。 5. 核心报告在耗时较长的截图捕获阻塞体验之前即打开。 6. 最近的访客报告保存在浏览器 localStorage 中,不包含大型截图的 base64 负载。 ## 证据模型 | 分组 | 含义 | 示例 | |---|---|---| | 已验证 | 来自直接协议或解析器的证据 | DNS 记录、TLS 握手、响应头、高置信度的 CDN 头部 | | 已观察 | 在获取的页面或响应中看到的数据 | HTTP 状态码、重定向、cookies、元数据、security.txt、截图 | | 推断 | 基于启发式或最佳实践的观察 | 从弱信号得出的技术栈指纹、推断的框架关系、缺失的加固头部 | 发现是关于安全态势的观察结果。一个警告并不意味着扫描器确认了可利用的漏洞。在将某个结果视为已确认之前,请审查来源、置信度和证据。 ## 架构 ``` frontend/ Next.js 16, React 19, TypeScript, Tailwind CSS v4 backend/ FastAPI, Python 3.12, Pydantic v2, async analyzers ``` 前端将扫描请求代理到后端 API。后端对目标进行标准化和验证,创建扫描任务,并发运行分析器,通过轮询友好的作业快照流式传输进度,汇总发现,并返回一份与 TypeScript 类型共享的驼峰式命名报告。 ## 本地开发 ### 后端 API ``` cd backend python -m venv .venv .\.venv\Scripts\activate pip install -r requirements.txt copy .env.example .env python -m uvicorn app.main:app --reload --port 8000 ``` 可选的截图支持: ``` cd backend python -m playwright install chromium ``` 截图功能由 `backend/.env` 文件中的 `ENABLE_SCREENSHOT` 和 `SCREENSHOT_TIMEOUT_SECONDS` 控制。 ### 前端 Web ``` cd frontend npm install copy .env.example .env.local npm run dev ``` 打开 `http://localhost:3000`。 ## 环境变量 后端示例: ``` ENV=development CORS_ORIGIN=http://localhost:3000 SCAN_TIMEOUT_SECONDS=90 ANALYZER_TIMEOUT_SECONDS=8 SCREENSHOT_TIMEOUT_SECONDS=45 FETCH_TIMEOUT_SECONDS=8 MAX_HTML_BYTES=1000000 ENABLE_SCREENSHOT=true ``` 前端示例: ``` API_URL=http://localhost:8000 ``` 对于托管部署,请将 `API_URL` 设置为后端源,将 `CORS_ORIGIN` 设置为前端源。 ## API 经典完整报告扫描: ``` POST /api/analyze Content-Type: application/json { "target": "example.com", "save_history": false, "force_refresh": true } ``` 实时作业流程: ``` POST /api/analyze/jobs GET /api/analyze/jobs/{job_id} ``` 响应遵循 `frontend/types/index.ts`、`backend/app/schemas/api.py` 和 `backend/app/schemas/report.py` 中定义的共享模式。 ## 测试 后端测试: ``` cd backend python -m pytest ``` 默认的 pytest 运行会排除标记为 `integration` 的测试,因为这些测试需要实时的 DNS/HTTP/TLS/WHOIS 访问。 前端质量检查: ``` cd frontend npm run lint npm run build ``` ## 安全边界 XyaVora-Scan 专为被动、防御性分析而设计。 - 它不进行漏洞利用、暴力破解、模糊测试或执行激进扫描。 - 目标验证会阻止 localhost、私有 IP 范围、链路本地地址和云元数据端点。 - HTTP 请求使用有界的超时和受控的重定向处理。 - 截图捕获是可选的、非阻塞的,并且应被视为风险较高的网络功能。 - 结果可能包含推断的信号。在将某个发现视为已确认之前,请审查证据标签。 仅扫描您拥有或有权评估的域名。 ## 贡献 欢迎提交问题和拉取请求。有益的贡献包括: - 带有离线测试的新分析器模块。 - 带有证据和反向测试的更好技术指纹。 - 针对长证据、实时进度和报告可读性的 UI 改进。 - 文档修正和部署说明。 - 针对 URL 验证、重定向和截图捕获的安全加固。 添加分析器时,请保持默认测试套件离线且确定性。使用 `@pytest.mark.integration` 标记需要实时网络访问的检查。 ## 许可证 MIT。参见 [LICENSE](LICENSE)。
标签:cookies分析, DNS分析, HTTP头安全, security.txt解析, SSL检查, TLS安全, WHOIS查询, 二进制发布, 公共扫描, 协议探测, 在线扫描, 域名安全, 域名情报, 安全头检测, 安全工具库, 安全态势分析, 安全扫描, 实时分析, 实时处理, 开源工具, 技术栈识别, 时序注入, 漏洞检查, 特征检测, 终端仪表板, 网站安全评估, 网络安全, 自动化攻击, 被动侦察, 逆向工具, 隐私保护, 风险评分