对哔哩哔哩选择性拦截视频外链的研究
最近在萌百看条目的时候发现了一些奇怪的现象:
???什么操作?
在我点击这个链接后,发现:第一个链接(【折v】中华铄金娘【心华】【短版摸鱼】 [1/1]
)打开后显示为404,而第二个链接(这里
)却可以正常打开。但是在Chrome DevTools里,两个<a>
标签的URL没有任何区别。
唯一的区别,就是那个可访问的链接加上了3个属性:nofollow
,noreferrer
,noopener
. 这三个属性中的 noreferrer
可以使得数据包中不含 Referer
字段,做到当用户在一个网页上点击链接时,目标服务器却认为用户是通过地址栏直接输入 URL 访问的效果。
所以这个功能对萌百的所有外链有效,是针对萌百的封禁吗? 用Fiddler抓个包看看。
可以明显的看到,加了 Referer 字段的数据包被 B 站 302 到了 404 页面,而没加 Referer 字段的数据包则收到了正常的 200 响应。而且这个 404 明显不同于 B 站对于不存在的视频的处理规则——不发送404响应头,不重写URL。具体怎么证明自个去B站上输一个不存在的av号就明白了:
那么这些页面究竟发生了什么?我去萌百上搜索了一下,关键词为:移动端用户请点击这里观看原视频(选择在新窗口中打开,否则会被识别为404)。
,搜出来了43条结果。 对搜出来的结果大致分析了下,发现这些视频大多数或多或少包含一些在“净网”中定义为非法的内容,比如说:
- 《骚红娘》,拦截外链+屏蔽搜索关键词,包含性暗示内容。
- 《罂粟花冠》,拦截外链,包含毒品有关内容。
- 《噬心》,删除原视频+拦截补档视频外链,包含暴力血腥内容。
就举三个例子吧。我也没空一个一个视频的分析。 那这是不是B站专门对萌百设置的拦截规则呢?不是,也不可能是。为什么不可能我懒得论证了,从技术上证明:
那么,回归到我发现这一现象的视频——《中华铄金娘》上,这个视频为什么会被拦截外链?故事情节?那为什么不拦《中华烛火娘》?情节类似啊。 后来我终于找出了一个可能的理由:空耳–>Political sensitivity.
本曲“箭过后万事已休”一句被空耳成“建国后万事已休”。
…… 类似的,有一个视频,《元素周期表之歌》,我也找到了一个类似的理由:空耳–>色情:
……Mn锰 Fe铁 Co钴 Ni镍 Cu铜 Zn锌 Ga镓 Ge锗……
是不是没看懂?我光看歌词也没看出来有什么问题,后来我听了一下这首歌……emmm…… 镍
的读音是 niè
,铜
的读音是 tóng
,而恋童
两字的读音分别是 liàn tóng
,两者音调相同,读音相似,可能是被误杀了。
其他不存在违规行为的视频,我大概看了下,有些还真的可以空耳出违规点来,有的……反正我猜不出来。