URL 解析器差异检查器
粘贴一个或多个 URL(每行一个),检查浏览器/WHATWG URL 解析器与部分后端语言使用的旧式 RFC 3986 风格解析器之间的差异。了解各解析器认为 URL 指向何处,以及为什么这有时是安全问题,而不只是格式问题。
在您的浏览器中本地处理。文件绝不会被上传。
使用方法 工具
- 粘贴单个 URL 或每行一个 URL 的文本块;内容不会离开浏览器。
- 选择“检查 URL”。
- 查看每个标记值:哪些解析行为不同、影响哪些解析器,以及为何重要。
- 仅在提供时使用建议改写;userinfo 混淆和非 ASCII 主机名会刻意保留未解决,因为猜测预期主机比报告歧义更糟。
假设条件
- 每个非空行视为完整 URL,不会从长文本中搜索 URL 片段;空白、反斜杠位置和 userinfo 等检查需要分析完整字符串。
- 没有 scheme(“https:”)且没有相对协议前缀 `//` 的行视为普通文本并跳过,不报告问题。
- 每项比较的 WHATWG 一侧使用当前浏览器实际运行的 `URL` 构造函数,而不是模拟;“不受影响”表示已用此确切输入测试。
- RFC 3986 严格/旧式一侧描述旧式或严格解析器的有文档记录行为,不是实际运行的第二个解析器。本工具不会执行其他语言的不可信代码来比较。
来源与参考数据
方法说明
针对宽松 WHATWG 风格与较严格 RFC 3986 风格解析之间七种独立且有文档记录的差异检查每个候选 URL:反斜杠规范化、userinfo/主机混淆、额外前导斜线、非 ASCII/IDN 主机、缺少 scheme 的相对协议 URL、嵌入空白/控制字符及未编码空格。仅在明确安全时改写:规范化反斜杠、移除多余空白、折叠额外斜线、百分号编码字面空格。绝不自动改写 userinfo 混淆或非 ASCII 主机,因为无法知道原本预期的主机。
计算示例
userinfo 中 `@` 的混淆
输入项: https://trusted.com@evil.com/
结果: 浏览器将 `@` 前内容视为 userinfo,之后内容才是真正主机,因此 URL 实际指向 evil.com,而非 trusted.com。标记为错误;这是绕过仅用字符串匹配目标而未使用真正 URL 解析器的经典方式。
用反斜杠代替正斜杠
输入项: https:\\example.com\path
结果: 浏览器会对 https 等特殊 scheme 将反斜杠规范化为正斜杠,因此浏览器中与 `https://example.com/path` 解析相同;许多非浏览器解析器不会这样规范化,可能得到不同主机或直接失败。标记为错误,并安全改写为 `https://example.com/path`。
额外前导斜线
输入项: https:///example.com
结果: 不同解析器对 scheme 冒号后的三个斜线处理不一致。标记为警告,并安全改写为规范形式 `https://example.com`。
userinfo 中看似可信的主机
输入项: https://trusted.com@evil.com/
结果: 此 URL 中,`trusted.com` 是 `@` 前的用户信息;主机是 `evil.com`。这可欺骗只搜索可信域名子串、却不解析 URL 的检查。工具只分析文本,不会抓取或导航到该地址。
实用指南
- 绝不要用字符串匹配(`url.startsWith(...)`、`url.includes(...)`)验证 URL 信任或来源;应先用真正的 URL 库解析,再检查解析出的主机。
- 在 URL 到达不会自行规范化的解析器前,先将反斜杠规范为正斜杠;将 URL 中的反斜杠视为警讯,而不是格式选择。
- 多个系统将解析同一 URL 时,优先使用显式 scheme,而非相对协议 URL,因为并非所有解析器都能在没有基准 URL 时接受相对协议值。
常见错误
- 认为 URL 看起来指向可信域名就确实如此;userinfo 混淆正是为绕过快速目视或子串检查而设计。
- 认为 URL 未抛出解析错误就说明解释正确;userinfo、反斜杠和非 ASCII 主机等差异都可能在所有解析器中成功解析,却得到不同主机或路径。
常见问题
为什么 userinfo 混淆标为错误,而非 ASCII 主机只标警告?
userinfo 混淆是有文档记录且正在被利用的安全绕过方式,没有常见的此类合法用途。非 ASCII 主机通常完全合法(国际化域名);问题仅在解析器处理方式不同,并不表示 URL 本身可疑。
为什么工具不直接抓取或规范化 URL 来检查实际主机?
本工具绝不会导航、抓取或将粘贴的 URL 渲染为可点击链接,只在浏览器中静态分析文本。教导 URL 混淆攻击的工具不应自身成为攻击媒介。
结果干净是否意味着 URL 肯定安全?
只表示未发现本工具检查的七种具体且有文档记录的解析差异;不保证抓取该 URL 安全,也不保证它不存在其他与解析器分歧无关的恶意问题。
上次审核: 2026-09-25
这是静态文本检查器,不是实时第二解析器:RFC 3986 严格侧描述有文档记录的真实解析器行为,不会执行其他语言的 URL 库处理输入。也不解析相对 URL、不跟随重定向,也不根据此处七种解析差异之外的因素判定恶意性。
主题和工具偏好设置,以及已保存和最近使用的列表仅存储在此浏览器中。