你是如何被叔叔开盒的

起因

起因是有一天b站给我精准推荐了三次元世界的好友:

被开盒

瞬间就有了一种被叔叔开盒的感觉(

因为这几位并不是我的b站关注,而我又没有添加自己的学校信息,因此不由得好奇叔叔这一波操作是如何实现的。

后来看到了这样一张图:

QQ截图

6:叔叔

短链接跟踪狂

既然已经被叔叔开盒了,不妨仔细看看叔叔在点击分享按钮之后都干了什么。

微信分享

用b站app分享一个链接到微信,模拟平常的好友分享。

复制得到分享链接:

https://www.bilibili.com/video/BV12Y411q7S1/?buvid=XX78BC87E3D7352858A5DF0A0E3B4EE31378B&is_story_h5=false&mid=av4ecIxr1KXV%2Fb27pLr7BA%3D%3D&p=1&plat_id=116&share_from=ugc&share_medium=android&share_plat=android&share_session_id=2f2b6821-9ba1-484a-98a3-b85d171426ab&share_source=WEIXIN&share_tag=s_i&timestamp=1675911240&unique_k=zoTJSAQ&up_id=23947287

Unicode解转义一下:

https://www.bilibili.com/video/BV12Y411q7S1/?buvid=XX78BC87E3D7352858A5DF0A0E3B4EE31378B&is_story_h5=false&mid=av4ecIxr1KXV/b27pLr7BA==&p=1&plat_id=116&share_from=ugc&share_medium=android&share_plat=android&share_session_id=2f2b6821-9ba1-484a-98a3-b85d171426ab&share_source=WEIXIN&share_tag=s_i&timestamp=1675911240&unique_k=zoTJSAQ&up_id=23947287

可以看到这个链接非常的脏,上面带着大量的参数,都是用于追踪用户行为的。下面逐个分析:

  • https://www.bilibili.com/video/BV12Y411q7S1/是核心链接,也就是一个干净的视频网址。?后面是跟踪参数。
  • is_story_h5=false应该是和播放器相关的一个参数。
  • mid=av4ecIxr1KXV/b27pLr7BA==和个人数据强相关的一个参数,类似于ID,长度24位。
  • p=1说明这是分p视频的p1。
  • buvid=XX78BC87E3D7352858A5DF0A0E3B4EE31378B是个人信息标识buvid,值是一个长度为37的字符串。应该是你的uid哈希后的值,不过37位的长度实在太奇怪了,这里目前还不知道怎么处理的。
  • share_from=ugc表明分享者是从视频页面点击分享的。
  • share_medium=android表明分享者的手机是Android系统。
  • share_plat=android表明分享者的b站平台是Android客户端。
  • share_session_id=2f2b6821-9ba1-484a-98a3-b85d171426ab是叔叔数据库中记录你分享信息的标识。
  • share_source=WEIXIN表明你的分享平台是微信。
  • timestamp=1675911240一个UNIX时间戳,转换完后是分享时间:北京时间2023-02-09 10:54:00
  • unique_k=zoTJSAQb23.tv的短链接参数,不信可以访问一下https://b23.tv/zoTJSAQ
  • up_id=23947287是分享的up主的裸uid,说明这个up的账号是https://space.bilibili.com/23947287

QQ好友分享

直接可以复制得到链接,此处可以直接抓到b23.tv的短链。

https://b23.tv/9yNFN1F?share_medium=android&share_source=qq&bbid=XX78BC87E3D7352858A5DF0A0E3B4EE31378B&ts=1675913208401

短链也带参数绷不住了:

  • share_medium=android表明分享者手机是Android系统。
  • share_source=qq表明分享平台是QQ。
  • 还有一个追踪的bbid=XX78BC87E3D7352858A5DF0A0E3B4EE31378B,对照一下刚才的微信分享,一致,基本可以断定是这就是你在叔叔那里的追踪专用身份证号
  • 时间戳ts=1675913208401表明你的分享时间,值得注意的是这里的时间戳是13位的,说明短链接时间戳的生成脚本语言大概率是java,13位的时间戳可以精确到毫秒,只是意义不大就是了。

总的来看这应该是跟踪信息的摘要,是长链接参数的子集。

继续追踪http响应,发现302到了下面的长链接:

https://www.bilibili.com/video/BV12Y411q7S1?buvid=XX78BC87E3D7352858A5DF0A0E3B4EE31378B&is_story_h5=false&mid=av4ecIxr1KXV/b27pLr7BA==&p=1&plat_id=116&share_from=ugc&share_medium=android&share_plat=android&share_session_id=4ed16367-bd2d-4b63-9f2a-77488423b712&share_source=QQ&share_tag=s_i×tamp=1675913208&unique_k=9yNFN1F&up_id=23947287

此链接就和微信分享的分析一致了,这是一个包含更多追踪参数的脏链接。

网页端分享

获得链接:

https://www.bilibili.com/video/BV12Y411q7S1/?share_source=copy_web&vd_source=d8a07be97b699fb9fdd08c6fed26e940&t=398

明显的能看出来链接参数比APP端分享的少了很多,叔叔没马😅。

一共只有三个参数:

  • share_source=copy_web表明分享来源是网页。
  • vd_source=d8a07be97b699fb9fdd08c6fed26e940也是追踪用的个人身份ID,但是算法和APP分享的不太一样,这个长度是32位的,感觉应该是正常的哈希。
  • t=398是精准空降用的,本例可以直接空降到视频398秒。

不止于此

叔叔的b23.tv短链不止可以追踪你的视频分享,其追踪范围是所有分享。包括私信,个人空间等。

比如我QQ分享一下可汗的个人空间,可以得到以下网址:

https://b23.tv/2wBnJ6S?share_medium=android&share_source=qq&bbid=XX78BC87E3D7352858A5DF0A0E3B4EE31378B&ts=1675918635160

同样302得到一个类似的脏网址:

https://space.bilibili.com/23947287?plat_id=1&share_from=space&share_medium=android&share_plat=android&share_session_id=c45863ef-c4df-458c-a693-f8e10c30230f&share_source=QQ&share_tag=s_i&timestamp=1675918635&unique_k=2wBnJ6S

如果在客户端直接选择分享链接,则会得到:

【小约翰可汗的个人空间-哔哩哔哩】 https://b23.tv/GWB1V0D

302到脏网址:

https://space.bilibili.com/23947287?plat_id=1&share_from=space&share_medium=android&share_plat=android&share_session_id=917fbc26-70d8-4c90-a0ad-f677dca02789&share_source=COPY&share_tag=s_i&timestamp=1675918572&unique_k=GWB1V0D

参数细节都是类似的,不再赘述。只是有意思的一点是,在手机端分享网址的短连接本体是不带参数是摘要的,分享到APP内则是带参数摘要的,在电脑网页端分享则追踪参数最少——只带一个个人ID,不知道叔叔是不是心虚了,越是不好看到网址的地方参数越脏😅。当然以及平台短网址有追踪参数摘要,对于b站来说完全没必要写,因此很难不怀疑是和社交平台做了什么PY交易,暴露参数摘要应该是提供数据给麻花疼用的😅,口区😅。

反击

短链接带追踪参数之前已经被人发现了,叔叔就是这样通过好友或者群聊的分享摸清了大家的社交关系,进而达到开盒的效果。是的,我被推荐的好友都是曾经在私聊或者群里发过b站分享的。

避免追踪

首先就是不建议直接使用b站分享功能到公共群聊。网上可以查到之前早一段时间叔叔的分享id是没有哈希过的,直接就是裸uid,导致有人在帖子上使用分享链接被人分析后开盒。不过目前哈希过的个人id不太会有被别人开盒的可能(,只会被叔叔自己开盒😅。

如果愿意动动小手,可以使用一个链接清洗的网站:b23.wtf,把你要分享的b23.tv短链域名后缀替换为b23.wtf然后复制清洗以后的网址可以避免追踪。

如果有办法直接获取bv号,建议直接分享bv号。

最后

阴谋论:带追踪的分享链接极有可能不止叔叔一家,诸如淘宝等强实名平台的分享链其实更为可怕。淘宝几乎关联了一个人的全部个人敏感信息——手机号,银行卡,身份证号,家庭住址。虽然马云进军社交app的努力失败了,但是这并不代表他不能用一种更为隐蔽的方式渗透获得我们的社交系统。

互联网下,没有隐私。