未知 URL 参数
URL 中不只会带有容易理解含义的参数。
像 utm_source 和 gclid 这样容易推测为跟踪目的的参数存在,像 id、token、cid、source、ref、session 这样,仅凭外观难以判断的值也存在。
看到未知参数时,认为“因为不知道所以可以删”,或“因为不知道所以保留就好”,都很危险。
匿名性中重要的是区分该值是否为页面显示所必需,还是用于识别用户或路径。
本文整理如何阅读和判断未知 URL 参数。
什么是未知参数
未知参数是指仅凭名称难以判断用途的 URL 内部值。
例如下面这样的字符串。
sample.test/page?id=123&cid=abc&token=xyz
这里的 sample.test 是说明用字符串。
id=123 可能是文章 ID。也可能是商品 ID。也可能是每个用户的 ID。
cid=abc 可能是活动 ID。也可能是客户 ID。
token=xyz 可能是接近临时访问权限或会话的值。
不能只凭名称决定。
因此,未知参数应作为“推测含义、确认行为、必要时不共享”的对象来处理。
分类思考
把未知参数分成几类来看,会更容易判断。
| 种类 | 例子 | 处理 |
|---|---|---|
| 显示所需值 | id、page、q、category | 删除后内容可能改变 |
| 像跟踪的值 | cid、campaign、source、ref | 共享时可能不需要 |
| 像个体识别的值 | uid、user、visitor、client | 成为接近用户或终端的线索 |
| 像认证或临时链接的值 | token、session、sid、key | 优先判断为不公开共享 |
| 含义不明的长值 | 随机英数字 | 可能是个别发放,应谨慎处理 |
这种分类不是完全判定。
但是,比什么都不想就粘贴更安全。
特别是 token、session、sid、key 这样的值,要谨慎处理。它们可能不是共享用 URL,而是与登录状态或临时访问有关的 URL。
确认可否删除
未知参数要实际删除后确认。
但是,如果只用平时登录着的浏览器确认,可能会判断错误。
| 顺序 | 确认内容 | 理由 |
|---|---|---|
| 1 | 查看参数名 | 推测接近跟踪、显示、认证中的哪一种 |
| 2 | 逐个删除 | 区分哪个值是页面显示所必需 |
| 3 | 用其他浏览器打开 | 减少 和登录状态影响 |
| 4 | 以退出登录状态打开 | 确认他人也能看到的 URL |
| 5 | 残留不明长值时不共享 | 避免个别链接的可能性 |
一次性全部删除,就不知道哪个值是必需的。
逐个删除,更容易区分显示所需值和不需要的值。
未知值变危险的场景
未知参数成为问题,不只是因为值本身可能是可读个人信息。
即使看似随机的英数字,在服务内部也可能与特定用户、投放、邀请、点击、会话连接。
| 场景 | 会发生什么 |
|---|---|
| 邮件个别链接 | 可能带有表示发给谁的值 |
| 邀请链接 | 邀请者或被邀请者可能被记录 |
| 限定公开链接 | 变成只有知道 URL 的人才能看 |
| 购买・申请后页面 | 接近订单或申请的信息可能留在 URL |
| 管理画面或预览 | 可能共享本来不是公开用的页面 |
用匿名账号共享这样的 URL 时,即使隐藏网络路径,URL 一侧也会产生关联。
和 不会消除 URL 中包含的识别符。
不应共享的信号
未知参数中,有些在删除之前就应避免共享。
出现以下情况时,比起强行整理后共享,更应该从公开页面或官方分享按钮寻找其他 URL。
| 信号 | 理由 |
|---|---|
| 包含 token、session、sid | 可能接近临时状态或认证 |
| URL 极端长 | 可能包含大量个别状态或跟踪信息 |
| 只有登录中能打开 | 可能是他人看不到的个人页面 |
| 有表示管理、编辑、预览的词 | 可能不是公开用 URL |
| 删除后内容大幅改变 | 该值与页面内容强相关 |
在匿名性中,重要的是不要把不懂的东西当作安全。
“不太懂,但大概没事”是危险判断。
常见误解
关于未知参数,有几个常见误解。
首先是“随机英数字没有意义”。
实际上,看似随机的值越可能在内部作为单个用户识别符使用。
其次是“没有自己的名字就没问题”。
匿名性中有问题的不只是姓名。个别发放链接、邮件投放 ID、邀请 ID、会话 ID 会与服务侧日志连接。
最后是“把 URL 缩短就安全”。
短链接只是缩短外观。如果展开目标中仍残留未知参数,问题并没有消失。
实践判断
看到未知参数时,按以下方式判断。
- 确认是否像显示所需值
- 将类似跟踪、介绍、活动的值作为删除候选
- 对 token、session、sid、key 等优先选择不共享
- 删除后用其他浏览器重新打开
- 如果仍残留不明值,寻找官方共享 URL
这种判断看起来麻烦。
但是,匿名共享的 URL 是帖子正文的一部分。
如果要重读正文,也需要重读 URL。
总结
未知 URL 参数是指仅凭名称难以判断用途的 URL 内部值。
id、cid、ref、token、session 这样的值,需要确认它们与页面显示、跟踪、个体识别、认证中的哪一种有关。
未知值不能立即判断为可以删除,也不能立即判断为保留即可。
要逐个删除,用其他浏览器或退出登录状态确认,减少共享不需要的值。
特别是存在 token、session、sid、key 这样的值时,应优先选择不共享。
URL 中残留的小值,可能与服务侧日志和访问时刻连接。
匿名性中,重要的是不要放置不明值。