错误发生在复制那一刻
这类泄露大多不是攻击,而是发布简介、作品集页面或论坛签名前几分钟的复制粘贴失误。浏览器地址栏可能显示的是 Feed 地址,而你眼前的页面感觉像“我的活动”,于是被复制的 URL 是用来认证请求的那个,而不是单纯指向你个人资料的那个。
GitLab 个人活动 Feed 的 URL 包含一个用于认证 Feed 请求的令牌。来源
这正是这项检查重要的全部原因:令牌不是可以事后单独撤销的独立机密。它嵌在链接里,而链接正是你即将发布的东西。
公开个人资料 URL 和带认证的活动 Feed URL 用途不同。来源
把这句话当作本指南其余部分的判断规则。如果你手里的 URL 可被用来获取私密 Feed 内容,那它就不是个人资料链接,不管它看起来像什么。
第 1 步:确认你手里是哪种链接
你不需要理解令牌格式才能做判断,你需要知道这个 URL 来自哪个页面。在公开粘贴任何内容之前,把下表当作检查清单。
| 你复制的内容 | 典型迹象 | 可公开? | 该怎么做 |
|---|---|---|---|
| 个人资料页 URL | 退出登录后打开仍是你的个人资料 | 是,前提是资料本身公开 | 用这个 |
| 活动 Feed URL | 含一长段令牌,返回 Feed 数据 | 否 | 丢弃;不要粘贴、缩短或截图 |
| 来自设置或令牌页面的链接 | 复制时你处在已认证区域 | 视为私密 | 换成个人资料 URL |
| 别人发给你的链接 | 来源不明 | 未验证 | 先退出登录打开再决定是否信任 |
有两点限制值得直说。第一,这张表是编辑检查流程,不是平台功能;GitLab 不会替你标注链接。第二,一个 URL 在你已登录的浏览器里能正常打开,什么也证明不了,因为你的会话可能提供了陌生访客没有的访问权限。
一个不会暴露任何内容的实用测试:在未登录的隐私窗口中打开候选链接。如果它要求你认证,或返回你不希望陌生人读到的 Feed 内容,就停下来,回到个人资料页重新复制地址。不要把失败的 URL 粘贴到聊天、工单或公开帖子里去“检查”。
第 2 步:换成公开个人资料 URL
一旦你判断链接类型不对,替换就是安全的做法。以下顺序能让私密 URL 不进入任何可能被存储的中间环节。
- 关闭显示 Feed 或含令牌地址的标签页,不要再复制它。
- 通过站点界面正常进入你的个人资料,而不是用指向 Feed 的收藏书签。
- 确认这就是你打算公开的个人资料,且其可见范围符合你的预期。
- 只从个人资料页复制地址。
- 先粘贴到纯文本编辑器,而不是直接粘进简介字段,这样在它去任何地方之前你能看到完整字符串。
- 对照上表检查粘贴的字符串。如果任何部分看起来像一长串凭据而不是名称或路径,丢弃它并从第 2 步重来。
- 把验证过的个人资料 URL 粘贴到简介,然后以退出登录访客的视角预览简介。
第 5 步不是形式主义。简介字段、富文本编辑器和链接预览都可能存储或抓取你粘贴的内容,而对含令牌 URL 的一次预览抓取,就是链接又传播到的一个地方。
第 3 步:判断 Feed 本身是否应可见
个人资料链接和 Feed 链接是两个独立问题。你可能有一个完全安全的个人资料 URL,却仍对活动暴露的程度感到不安。这是可见性决定,不是链接格式决定,而且应该在你发布任何引导人们访问你个人资料的内容之前做出。
个人 Feed 包含成员项目的活动,无论选择哪个活动标签或筛选条件。来源
这对判断很重要:如果你指望某个标签或筛选器把某些活动挡在视野之外,上述 Feed 行为意味着该筛选器不是隐私边界。要判断整个 Feed 是否可接受,而不是假设更窄的视图能保护你。
如果你得出结论认为不可接受,下一步是检查调整个人资料可见性后还有哪些内容公开可见,而不是只改一个设置就完事。一个相关的后续指南是将 GitLab 个人资料设为私密并检查哪些内容仍然公开,它处理这一决定的可见性方面。
如果链接已经分享出去
要假设任何公开过的内容都可能已被复制、缓存或索引,即使你一分钟后就删掉。删除帖子不会收回他人或自动化系统已经制作的副本,本指南不会假装不是这样。
使用站点自身的授权令牌和账号控制,或其支持渠道,来处理已暴露的凭据。这里审阅的材料并未确立确切的菜单路径和可用的恢复选项,所以请在你的账号中核实,而不是照搬旧界面的记忆步骤。不要把暴露的 URL 粘贴到公开 issue、求助的社交帖子或第三方网站;描述问题,但不要重现链接。
通过授权途径采取行动后,重新检查你发布过的地方:各站点的简介字段、签名、作品集页面、置顶帖以及你分享过的任何文档。把每一处都换成个人资料 URL,并记下你无法编辑的地方。
用户名查询适合用在哪,又止步于哪
如果你担心的是某个用户名在各站点被复用的广泛程度,用户名查询可以找出公开匹配项供你审查。TraceSeek 覆盖 3,000+ 平台,并提供免费首次扫描,据产品说明耗时 20–30 秒。这是线索发现步骤,不是所有权证明:另一站点上的同名用户名可能属于别人,一次搜索也不是所有账号的完整清单。
查询做不到的是告诉你某个你复制的 URL 是否含凭据。那个判断来自第 1 步的检查。把两项任务分开:用查询找出值得审查的公开个人资料,用链接类型检查决定什么可以安全发布。
粘贴前的快速清单
- 我是从个人资料页复制的 URL,不是从 Feed、设置或令牌页。
- 整个字符串不含像长凭据的片段。
- 链接在无会话的隐私窗口中按预期打开。
- 我先粘贴到纯文本编辑器,再放进简介字段。
- 我以退出登录访客的视角预览了简介。
- 我已判断整个活动 Feed 是否可接受暴露。
- 如果我已分享过 Feed 链接,我使用了授权的账号控制或支持渠道,且没有转发该链接。
- 我重新检查了旧链接出现过的每一处。
如果有任何一项未勾选,安全的默认做法是什么都不发布,回到个人资料页重新复制。