安全链接解码器

解码 Outlook SafeLinks、Proofpoint URLDefense、Google 跳转链接等被邮件网关重写的 URL,在点击之前看清它真正指向哪里。

还原 Outlook SafeLinks、Proofpoint URLDefense 等被重写的链接。 企业邮件网关会重写邮件里的每一个链接,让点击先经过它们的扫描器。把重写后的链接粘贴到这里,在打开之前先看清真实目的地。

请粘贴完整链接,包含查询字符串。所有处理都在浏览器内完成。

链接为什么会被重写,以及如何读懂它

链接包装做了什么

当企业部署了 Microsoft Defender for Office 365、Proofpoint、Mimecast 之类的邮件网关,入站邮件里的每一个 URL 都会在送达邮箱之前被改写。example.com/report 会变成类似 eur01.safelinks.protection.outlook.com/?url=htt... 的形式。

目的在于点击时刻的防护。一条链接在邮件被扫描时可能完全无害,一小时后才被挂上恶意载荷,因此网关强制每次点击都回到自己的扫描器,在那一刻重新核对目标信誉。

包装的代价

包装打破了最古老的一条安全建议:把鼠标悬停在链接上、看看它指向哪里。状态栏现在显示的是网关域名,而不是真实域名。它还会破坏链接预览、让 URL 无法写进文档、无法直接粘贴到终端,并把点击行为泄露给网关运营方。

解码就是把原始 URL 拿回来,让你自己判断。

各种格式

Outlook SafeLinks 把目的地放在 url 查询参数里,做了一次百分号编码。后面的 datasdatareserved 都是跟踪元数据,可以丢弃。

Proofpoint URLDefense 有三代。v1、v2 使用 u 参数并做了自定义替换:- 代表 %_ 代表 /。v3 改用路径形式 __example.com__;!!...。本工具会先还原替换再做百分号解码。

Google 使用 /url?q=(搜索结果)或 /url?url=(其他产品),Facebook、LinkedIn、Twitter 也各有对应形式。

通用包装把目的地放在名为 urlutargetredirectdestlink 的参数里。识别不出具体厂商时,解码器会扫描这些参数名。

安全地阅读解码结果

拿回 URL 只完成了一半。要看可注册域名而不是整串字符——paypal.com.secure-login.ru 属于 secure-login.ru。留意形近字符、意料之外的顶级域,或者一个正规主机配上奇怪路径(例如 /wp-content/uploads/)。另外记住:解码后看起来正常,并不能证明链接背后的文件是安全的。

开源说明:基于浏览器自带的 URLURLSearchParams API 以及公开的 URLDefense 替换规则实现,不使用第三方库,也不发起任何网络请求。

常见问题

在这里解码可疑链接安全吗?
安全。解码只是浏览器内的字符串处理,不会向该链接发起任何请求,也不会把内容发送到服务器。你是在读这个 URL,而不是访问它。
为什么解码后仍带着奇怪的参数?
utm_source、gclid、fbclid 之类的营销参数本来就属于原始 URL,解包之后依然存在。如果想要干净的链接,可以手动删掉。
提示“未被包装”,但链接确实来自邮件。
并非所有网关都会包装所有链接。内部发件人、白名单域名和纯文本邮件常常原样保留,因此没有可解开的外层。
可以关闭 SafeLinks 吗?
只有租户管理员能在 Defender for Office 365 策略里关闭,而关闭意味着所有人都失去点击时刻防护。更稳妥的做法是逐条解码。
多层包装怎么办?
在组织之间转发的邮件可能被包装两次。把解码结果再解一次,第二层同样能剥掉。