什么是 URL 跟踪
URL 并不只是表示网页位置的一串字符。
URL 中可能不仅包含要打开哪个页面的信息,还可能包含访问者来自哪条广告、点击了哪个社交媒体链接,或者这条链接是面向哪位用户生成的信息。
即使没有写入姓名或电子邮件地址,URL 中残留的参数也可能成为判断流量来源、搜索词、活动、点击 ID、引荐来源或会话信息的线索。
考虑匿名性时,只检查正文和图片,然后把要分享的 URL 原样贴出去,是有风险的。
本文整理 URL 跟踪是什么、URL 的哪些部分需要确认,以及分享前应如何判断。
什么是 URL 跟踪
URL 跟踪是使用附加在 URL 上的信息来测量访问来源和用户行为的机制。
例如,广告、电子邮件简报、社交媒体帖子、联盟链接和活动页面,可能会在 URL 末尾添加额外信息。
这些额外信息通常放在 URL 中 ? 的后面。
示例:
https://example.com/article?utm_source=newsletter&utm_campaign=spring
? 后面的部分称为查询字符串。查询字符串中可能包含搜索条件、页码、商品 ID、点击 ID、广告 ID、引荐者 ID 等值。
对网站运营者来说,URL 跟踪用于访问分析和广告效果测量。
但是,从匿名性的角度看,它也可能成为判断是谁分享了 URL,或链接经由什么路径被点击的线索。
URL 的哪些部分需要查看
检查 URL 时,重要的是不要把整个 URL 当作一个整体块来看。
URL 包含含义不同的部分。
| 部分 | 示例 | 从匿名性角度看什么 |
|---|---|---|
| 域名 | sample.test | 表示会连接到哪个网站 |
| 路径 | /article/network | 表示会打开哪个页面或功能 |
| 查询字符串 | ?id=123&utm_source=sns | 可能包含搜索词、标识符或跟踪信息 |
| 参数名 | utm_source、ref、gclid | 是推测信息类型的线索 |
| 参数值 | newsletter、abc123 | 可能表示流量来源、个人 ID 或活动 |
| 片段 | #section | 在普通 HTTP 请求中通常不会发送给服务器 |
尤其需要注意的是查询字符串。
并不是所有查询字符串都有危险。搜索结果页面或商品页面可能需要某些值才能正确显示页面。
另一方面,也可能附带了分享并不需要的跟踪参数。
关键是分开判断:“没有这个值页面是否还能打开”以及“这个值是否用于识别某个人”。
常见的跟踪参数
URL 跟踪中常见的值有一些固定模式。
| 类型 | 示例 | 含义 |
|---|---|---|
| UTM | utm_source、utm_medium、utm_campaign | 测量流量来源、媒介和活动 |
| 广告点击 ID | gclid、fbclid、msclkid | 识别广告或社交媒体点击 |
| 引荐来源 | ref、referrer、source | 表示从哪里来 |
| 联盟推广 | affiliate、aff、partner | 表示介绍者或合作来源 |
| 分享用 ID | share、invite、campaign_id | 可能表示分享链接或邀请路径 |
| 类似会话的值 | session、sid、token | 可能接近个人状态或认证信息 |
有些值,例如 UTM 和点击 ID,很容易看出是为了跟踪。
另一方面,像 id 或 token 这样的名称,仅凭名称无法判断。id 可能是文章 ID,也可能是按用户生成的标识符。
把不明值当作“大概没问题”并不好。
URL 分享中会发生的失误
URL 跟踪导致的失误,不一定来自技术上复杂的攻击。
很多只是把复制来的 URL 原样贴出就会发生。
| 失误 | 会发生什么 |
|---|---|
| 原样分享广告来源的 URL | 广告点击 ID 或活动信息会残留 |
| 原样粘贴邮件中的链接 | 可能残留邮件投递用的识别信息 |
| 分享搜索结果 URL | 搜索词或搜索条件可能残留在 URL 中 |
| 分享登录后的 URL | 可能混入会话或个人页面的信息 |
| 不展开短链接就分享 | 无法确认中转目标和是否存在跟踪 |
例如,假设有人用匿名账号介绍一篇文章。
正文中没有写个人信息。但是,如果粘贴的 URL 中残留了邮件投递 ID 或广告点击 ID,就会成为显示这条链接是经由什么路径取得的材料。
仅凭这一点不一定会暴露真实姓名。
但是,如果与发布时间、账号、、登录状态和访问日志结合起来,就会增强“像是同一个人”的判断。
在匿名性中,重要的是不要轻视这类很小的线索。
可以删除的值和不应删除的值
URL 参数并不是全部删掉就好。
有些值一旦删除,页面就不能正确打开。
| 类型 | 处理 | 理由 |
|---|---|---|
| utm_source 等 | 多数情况下可以删除 | 多用于访问分析,页面显示通常不需要 |
| gclid、fbclid 等 | 多数情况下可以删除 | 多用于广告或社交媒体点击测量 |
| ref、affiliate 等 | 确认内容 | 可能与引荐信息或收益统计有关 |
| page、q、id 等 | 谨慎确认 | 可能是页面显示或搜索条件所必需 |
| token、sid、session 等 | 优先判断为不分享 | 可能接近个人状态或认证信息 |
基本判断很简单。
删除后仍能打开同一页面,那么它可能是分享时不需要的值。
删除后变成其他页面、搜索结果改变,或必要信息丢失,那么该值与页面内容有关。
不过,带有 token 或 session 这类值的 URL,本身就不适合公开分享。
与其清理这条 URL,不如另外寻找正式的分享链接更安全。
分享前的检查步骤
分享 URL 前,按以下顺序检查。
| 顺序 | 检查内容 | 理由 |
|---|---|---|
| 1 | 检查整个 URL | 查看 ? 之后是否有不必要的信息 |
| 2 | 寻找像跟踪用的参数 | 确认 utm、gclid、fbclid、ref 等值 |
| 3 | 分类不明值 | 区分显示所需值和类似标识符的值 |
| 4 | 用删除后的 URL 重新打开 | 确认是否显示相同内容 |
| 5 | 如果是短链接则展开 | 确认最终连接目标和中转 |
如果可能,应在未登录状态或其他浏览器中检查。
如果用平时的浏览器检查,Cookie 和登录状态的影响可能导致分享“自己能打开,但别人打不开的 URL”。
匿名用途下,分享前只要在其他环境中打开确认一次,也能减少失误。
仅靠 URL 不能决定匿名性
即使清理了 URL,也不代表仅凭这一点就匿名了。
URL 只是线索之一。
同一篇帖子还涉及文章、图片、发布时间、账号、通信路径、登录状态和过去帖子。
例如,即使从 URL 中删除了跟踪参数,如果仍然登录在实名账号下发布,匿名性也会变弱。
相反,即使使用 或 ,如果分享的 URL 中残留个人 ID,也会在网络对策之外的位置发生关联。
URL 检查只是整体匿名性中的一个步骤。
总结
URL 跟踪是使用 URL 中包含的参数来测量访问来源和行为的机制。
UTM、点击 ID、引荐代码、短链接和重定向,可能成为分享来源或流入路径的线索。
考虑匿名性时,不仅要检查正文和图片,也要检查要分享的 URL。
重要的是区分可以删除的值和不应删除的值。跟踪用参数通常可以删除,而搜索词或页面 ID 这样的值可能是显示所必需的。
如果仍有不明值,不要把它当作安全。应推迟分享、寻找其他正式链接,或在其他环境中确认。
URL 看起来只是一小串字符。
但是,在匿名性中,这一小串字符可能会显示行动路径。