imxyanua/XyaVora-Scan
GitHub: imxyanua/XyaVora-Scan
XyaVora-Scan 是一款用于快速、被动扫描公共域名安全状况的开源工具,提供全面的DNS、SSL、HTTP头等检查。
Stars: 0 | Forks: 0
# XyaVora-扫描
[](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查询, 二进制发布, 公共扫描, 协议探测, 在线扫描, 域名安全, 域名情报, 安全头检测, 安全工具库, 安全态势分析, 安全扫描, 实时分析, 实时处理, 开源工具, 技术栈识别, 时序注入, 漏洞检查, 特征检测, 终端仪表板, 网站安全评估, 网络安全, 自动化攻击, 被动侦察, 逆向工具, 隐私保护, 风险评分