机场博客JICHANGBOKE.ORG

订阅链接为什么等于账号密码,泄露了怎么办

作者 塔台君发布 约 3 分钟读完

订阅链接里带着一段 token,服务器只认它,不要求登录,拿到链接的人就能下载你的全部节点并消耗你的流量。发现泄露后到机场用户中心重置订阅,旧链接和旧节点会一起失效,再给自己的每台设备重新导入。

在群里问一句订阅为什么更新失败,顺手把报错截图发出去,这是很常见的求助方式。麻烦在于客户端的报错信息里往往带着完整的订阅网址,群里几百个人,每一个都能照着截图把它敲进自己的客户端。

这条网址里没有登录这一步

订阅链接是机场交给你的那条网址,客户端靠它下载节点列表。我翻了开源面板 Xboard 的路由文件,它支持新旧两种写法。

https://example.com/s/0123456789abcdef0123456789abcdef
https://example.com/api/v1/client/subscribe?token=0123456789abcdef0123456789abcdef

两种写法里起作用的都是那段 32 位的 token。服务器收到请求,拿 token 查出是哪个账号,就把这个账号的节点列表吐出来,中间没有输入密码的环节,也不看请求来自哪台设备。各家机场用的面板我没有逐家核实,下面说到源码的地方都以 Xboard 为准,别的面板思路相近,细节可能不同。

拿到这条网址的人能做三件事。下载你的全部节点,用你的流量上网,还能看到你的套餐状态。Xboard 有个开关,打开后会在节点列表最前面插几行说明,写的是剩余流量、距离下次重置的天数和套餐到期日,这几行对任何持有链接的人都一样可见。

重置时面板换掉的是两样东西

Xboard 处理重置订阅的那个函数叫 resetSecurity,一共做了两个动作,给账号生成一个新的 UUID,再生成一个新的 token,最后把新的订阅网址返回给你。

token 管的是订阅链接,换掉以后旧网址就打不开了。UUID 管的是节点,它是你连每一台服务器时用的身份。只换 token 不够,因为别人可能早就把节点列表下载到了本地,手里的节点照样能连。两样一起换,旧链接和旧节点同时作废。

代价是你自己的设备也全部掉线。手机、电脑、路由器上存的都是旧 UUID,得用新链接一台一台重新导入。

链接是从哪些地方漏出去的

OWASP 有一页专门讲网址里带敏感参数的问题,列出这类网址会留痕的地方,包括 Referer 请求头、服务器访问日志、多人共用的系统、浏览器历史和缓存,还有被人从背后看到屏幕。它特别说明,用了 HTTPS 也解决不了,因为这些地方记下的都是完整网址。

放到机场订阅上,最常见的是下面几种。

第一种是截图。客户端的订阅管理页、更新失败的报错、浏览器地址栏,都可能露出完整链接。求助时把 token 那一段涂掉再发。

第二种是在线订阅转换。机场给的订阅格式和客户端对不上时,很多人会找一个网页版的转换工具。这类工具多数基于开源项目 subconverter,它的 README 里给的调用方式是这样的。

http://127.0.0.1:25500/sub?target=clash&url=https%3A%2F%2Fexample.com%2Fs%2F0123456789abcdef

订阅网址被整个当成参数,传给了转换服务器。例子里的 127.0.0.1 是你自己的电脑,换成别人搭的网站,对方的访问日志里就躺着你的完整链接,这正是 OWASP 清单里的服务器日志那一项。subconverter 提供 Docker 部署,想用可以在本机跑一份。

第三种是配置文件。Mihomo 的 proxy-providers 有个 path 字段,节点列表下载后会按这个路径存成本地文件,里面是每个节点的地址和你的 UUID。把整个配置目录打包发给别人排查问题,等于把节点直接送了出去。

公开分享的所谓免费订阅里,有多少是这样漏出去的付费链接,我没有办法统计。免费节点的代价那篇里谈了这类来源不明的节点。

怎么发现有人在用你的流量

机场回应订阅请求时,会在响应头里带上 Subscription-Userinfo,写着已用上传、已用下载和总流量,Stash 的文档和 Xboard 的源码里都能看到这个格式。Clash Verge Rev 这类客户端会把它显示在订阅卡片上。

留意的办法很朴素。记一下每天大概用多少,哪天没怎么上网,已用流量却涨了好几个 G,就该警觉。流量到底怎么累计,见机场流量怎么算

别指望靠被挤下线来发现。本站资料里,微风、飞为、灵动云都自述不限设备,多一个人用,你这边不会有任何提示。

泄露之后按这个顺序处理

先登录机场官网,在用户中心找到重置订阅的按钮,名字各家略有不同。面板里找不到就发工单让客服处理。

再把每台设备上的旧订阅删掉,用新链接重新导入。只点更新是不行的,客户端里存的还是旧网址。

如果发出去的截图或文件里还带着登录邮箱,顺手把账号密码也改了。订阅 token 和登录密码是两套东西,重置订阅不会动密码。

过一两天回来看已用流量,确认没有再异常上涨。

常见问题

订阅链接泄露了会怎样

拿到链接的人不用登录就能下载你的全部节点,走的是你的流量,还能看到你的剩余流量和到期日。自述不限设备的机场不会因为多了一台设备把你挤下线,所以很难第一时间察觉。发现后尽快到用户中心重置订阅。

重置订阅后旧链接还能用吗

不能。以开源面板 Xboard 为例,重置时会同时生成新的订阅 token 和新的节点 UUID,旧链接打不开,别人存下来的旧节点也连不上。你自己的每台设备都要用新链接重新导入一次,漏掉的设备会表现为所有节点超时。

在线订阅转换安全吗

把订阅交给别人搭的转换站有泄露风险。subconverter 这类工具是把订阅网址当成参数传给服务器的,服务器的运营者能在访问日志里看到完整链接。它是开源项目,可以在自己电脑上跑一份,或者直接用机场提供的对应格式订阅。

订阅链接可以分享给家人用吗

技术上可以,同一条链接能导入多台设备。要清楚对方拿到的权限和你完全一样,流量共用。链接再从他那里漏出去,你只能重置,然后给所有人重发一遍。各家机场是否允许多人共用,本站资料里没有逐家记录,以官网规则为准。

来源

订阅链接账号安全订阅转换Xboard

接着读