AdheeshaRavindu/GhostLink

GitHub: AdheeshaRavindu/GhostLink

GhostLink 是一款轻量级无服务器 URL 安全情报扫描器,通过多维度启发式分析为链接生成风险评分和安全建议。

Stars: 0 | Forks: 0

# GhostLink GhostLink 是一款轻量级的 URL 安全情报扫描器,旨在分析链接以确保用户在交互前的安全。它结合了启发式威胁检测、安全标头检查、域名情报、重定向分析和元数据提取,从而生成综合风险评分和明确的建议。 它被设计为完全无服务器的前端加上 Cloudflare Worker 后端。 ## 屏幕截图 ![GhostLink UI 截图 1](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/c3eac18733014411.png) ![GhostLink UI 截图 2](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/a105dce268014412.png) ![GhostLink UI 截图 3](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/ebda6cb58f014414.png) ![GhostLink UI 截图 4](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/d8ed6d9c63014416.png) ## 概览 - Frontend:Vanilla HTML, CSS 和 JavaScript - Backend:Cloudflare Worker - 输出:安全评分、风险等级、发现项、详细信息和推荐建议 - 存储:无数据库,不保留 URL 记录 - 部署:Cloudflare Pages, GitHub Pages, Netlify, Vercel 或任何静态主机 ## GhostLink 的功能 GhostLink 从多个安全维度评估 URL: - 钓鱼指标,例如基于 IP 的 URL、@ 符号、可疑关键词、过多子域名和长域名 - 传输安全检查,包括 HTTPS 验证、重定向行为和 HSTS 存在性 - 安全标头检查,包括 Content-Security-Policy、X-Frame-Options、X-Content-Type-Options、Referrer-Policy 和 Permissions-Policy - 域名情报,例如 Punycode 检测、可疑 TLD、主机名熵、数字标签和连字符标签 - 信誉启发式分析,例如长 URL、编码字符和路径中的高随机性 - 重定向链分析,以检测多跳或可疑的重定向行为 - 页面元数据、服务器信息和 DNS 相关诊断 结果是 0 到 100 的评分以及人类可读的风险等级: - 0 至 30:低 - 31 至 70:中 - 71 至 100:高 ## 分析流程原理 1. 用户在前端输入 URL。 2. 前端验证输入,并将缺失的协议统一为 HTTPS。 3. 浏览器向 Cloudflare Worker 的 `/analyze` 发送 POST 请求。 4. Worker 运行分析管道: - 钓鱼检查 - HTTPS 和 SSL 检查 - 安全标头检查 - 重定向链检查 - 元数据提取 - 服务器检查 - DNS 推断 - 域名情报 5. Worker 计算最终评分和风险等级。 6. 前端渲染: - 安全分析摘要 - 按类别分组的发现项 - 详细的 URL 情报 - 安全建议 ## 用户界面部分 GhostLink 的 UI 分为清晰的部分: - 页眉:产品名称、副标题和简短的功能标签 - 输入面板:URL 字段和分析按钮 - 安全分析摘要:评分、风险等级、评分条和总体说明 - 安全发现:扫描器检测到的分组问题 - URL 情报:协议、域名、元数据、服务器、DNS 和域名情报的技术细分 - 安全提示:基于风险和发现项的面向用户的建议 - 页脚:归属和页面元数据 ## 项目结构 ``` GhostLink/ ├── index.html ├── style.css ├── script.js ├── SETUP.md ├── README.md ├── LICENSE ├── _headers ├── Screenshot 2026-04-04 180952.png ├── Screenshot 2026-04-04 181016.png ├── Screenshot 2026-04-04 181039.png ├── Screenshot 2026-04-04 181054.png └── ghostlink/ └── worker-production.js ``` ## 前端行为 前端使用纯 JavaScript 构建,设计简单直观。 关键行为: - 验证输入是否为 URL - 当协议缺失时自动添加 `https://` - 向 Worker API 发送请求 - 分析开始时扩展布局 - 滚动结果视图,使摘要立即可见 - 在桌面和移动设备上渲染技术术语的工具提示 主要前端配置是 `script.js` 中的 Worker URL 常量。 ## API 参考 ### 端点 `POST /analyze` ### 请求头 ``` Content-Type: application/json ``` ### 请求体 ``` { "url": "https://example.com" } ``` URL 必须包含 `http://` 或 `https://`。 ### 成功响应 ``` { "success": true, "data": { "score": 42, "riskLevel": "Medium", "findings": [ { "type": "No HTTPS", "category": "HTTPS & SSL", "description": "URL does not use HTTPS encryption", "points": 20 } ], "details": { "url": "http://example.com", "components": { "protocol": "http:", "domain": "example.com", "port": "80", "pathDepth": 0, "pathLength": 1, "queryParamCount": 0, "hasFragment": false, "domainParts": 2 }, "metadata": null, "server": null, "dns": null, "domainIntel": null }, "recommendations": [ "⚠️ Be cautious with this site — it has some security concerns. Avoid entering sensitive data." ] } } ``` ### 错误响应 Worker 可能返回以下错误代码: - `INVALID_INPUT` - JSON 请求体未包含 URL 字符串 - `EMPTY_URL` - 修剪后的 URL 值为空 - `MISSING_PROTOCOL` - URL 未以 `http://` 或 `https://` 开头 - `ANALYSIS_ERROR` - 分析管道失败 - `INTERNAL_ERROR` - 请求无法处理 - `NOT_FOUND` - 任何不支持的路由 ## 响应数据模型 ### score 最终数值风险评分。数值越高意味着风险越高。 ### riskLevel 以下值之一: - Low - Medium - High ### findings 检测到的問題数组。每项包括: - type - category - description - points ### details 被分析 URL 的技术支持数据: - url:规范化后的输入 URL - components:协议、域名、端口、路径深度、路径长度、查询计数和片段存在性 - metadata:页面标题、描述、内容类型、语言、字符集、网站图标和表单存在性 - server:状态码、状态消息、响应时间、服务器标头、重定向链、安全标头和技术提示 - dns:域名、解析出的 IP(如有)和查找时间 - domainIntel:可注册域名、TLD 类别、子域名配置、熵和标签指标 ### recommendations 基于检测到的问题和风险等级的简短、用户友好的指导。 ## 评分逻辑 GhostLink 使用启发式评分。每个发现项都有一个分值,某些类别的权重高于其他类别。 Worker 中的加权类别: - Phishing Risk:1.3 - HTTPS & SSL:1.4 - Security Headers:1.2 - Domain Intelligence:1.25 - Reputation:1.0 - Redirect Chain:1.35 然后 Worker 将最终分数映射到前面列出的风险等级。 ## 检测规则 ### Phishing Risk (钓鱼风险) - URL 中直接使用 IP 地址 - URL 中使用 `@` - 过多的子域名 - 可疑关键词,例如 login, verify, secure, update, bank 和 free - 异常长的域名 ### HTTPS 和 SSL - 缺少 HTTPS - 未重定向到 HTTPS 的 HTTP URL - 缺少 HSTS 标头 ### Security Headers (安全标头) - 缺少 Content-Security-Policy - 缺少 X-Frame-Options - 缺少 X-Content-Type-Options - 缺少 Strict-Transport-Security - 缺少 Referrer-Policy - 缺少 Permissions-Policy ### Domain Intelligence (域名情报) - 可疑的顶级域名 - Punycode 或同形异义字风格域名 - 子域名数量和配置 - 主机名熵 - 数字标签 - 连字符标签 ### Reputation (信誉) - 非常长的 URL - URL 中包含编码字符 - 路径或查询字符串中的高熵 ### Redirect Chain (重定向链) - 超过允许阈值的重定向链 ## 本地开发 ### 环境要求 - Git - 浏览器 - 如果要运行 worker 后端,需要 Cloudflare 账户 ### 本地运行前端 您可以直接在浏览器中打开 `index.html`,但建议使用本地服务器。 ``` python -m http.server 8000 ``` 然后打开: ``` http://localhost:8000 ``` ### 重要提示 如果您直接使用 `file://` 打开文件,浏览器获取行为可能会受到限制。请使用本地服务器以获得最佳体验。 ## Cloudflare Worker 设置 1. 打开 Cloudflare 控制面板。 2. 创建一个新的 Worker。 3. 将 `ghostlink/worker-production.js` 的内容复制到 Worker 编辑器中。 4. 部署 Worker。 5. 复制以 `/analyze` 结尾的 Worker URL。 6. 更新 `script.js` 中的 `WORKER_URL`。 示例: ``` const WORKER_URL = 'https://your-worker.your-subdomain.workers.dev/analyze'; ``` ## Cloudflare Pages 部署 1. 将仓库连接到 Cloudflare Pages。 2. 不使用构建命令。 3. 使用 `/` 作为输出目录。 4. 部署站点。 该仓库已包含用于静态托管安全标头的 `_headers`。 ## 其他部署选项 ### GitHub Pages 将仓库作为静态站点从主分支托管。 ### Netlify 拖放项目文件夹或通过 Git 连接仓库。 ### Vercel 作为无构建步骤的静态项目部署。 ## 故障排除 ### 扫描器提示分析失败 - 验证 `script.js` 中的 Worker URL 是否正确 - 确认 Worker 已部署且可访问 - 检查浏览器控制台错误 ### 我看到 CORS 错误 确保 Worker 返回前端期望的 CORS 标头: ``` { 'Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Methods': 'POST, OPTIONS', 'Access-Control-Allow-Headers': 'Content-Type' } ``` ### 页面加载但没有结果显示 - 检查 URL 是否包含 `http://` 或 `https://` - 确认 Worker 端点为 `/analyze` - 确保站点未被浏览器隐私设置或网络限制阻止 ### 安全标头看起来不完整 - 某些站点有意省略标头 - 某些响应标头不会暴露给跨域请求 - 重定向和 CDN 层可能会改变可见的标头 ## 隐私和安全说明 - GhostLink 不存储被分析的 URL。 - 分析按需进行。 - 该项目专为检查而设计,而非持久化存储。 - 结果为启发式分析,应被视为一种安全信号,而非最终结论。 ## 局限性 - 启发式扫描器可能会产生误报。 - 某些站点会阻止 `HEAD` 请求或限制元数据访问。 - DNS 信息是在 Worker 环境无法直接查找的情况下推断出来的。 - 重定向和标头可见性可能因目标站点和 CDN 行为而异。 ## 自定义 您可以通过多种方式调整 GhostLink: - 在 `index.html` 中更改品牌 - 在 `style.css` 中调整视觉设计 - 在 `script.js` 中调整前端行为 - 在 `ghostlink/worker-production.js` 中修改评分逻辑和检测规则 ## 许可证 有关详细信息,请参阅 [LICENSE](LICENSE) 文件。 由 Adheesha 精心制作
标签:C++17, CSP, DNS诊断, HSTS, HTTPS校验, HTTP头分析, Object Callbacks, URL扫描器, Web安全, XSS防护, 云安全监控, 内容安全策略, 前置防御, 反欺诈, 在线安全, 域名信誉, 域名安全, 多模态安全, 威胁情报, 安全标准, 开发者工具, 恶意链接, 程序员工具, 网络安全, 网络钓鱼, 自定义脚本, 蓝队分析, 规则仓库, 轻量级工具, 重定向分析, 钓鱼检测, 隐私保护, 静态分析