今日头条反爬措施形同虚设,论多平台协同在安全方面的重要性

点击上方蓝字[协议分析与还原]关注我们


 玩头条练技能。

大家好,看到标题一定猜到了,我又来玩今日头条了,谁让它是东半球文明的杀时间神器呢。 

想当年,头条刚问世,正愁长辈看新闻没合适且方便的工具,虽然不爽头条的自动推荐算法,但还是安利出一个忠实用户。

 现如今,头条已成巨头,刚将互动百科纳入囊中,百度百科估计吃不了,若把维基百科吃掉那绝对神奇。 

头条系在内容巨头的路上,越走越远,文有头条守江山,武有抖音打天下,多媒体王者得到了4G时代的最大红利,这严重依赖于头条领导系统性建设的眼光。 

今日头条,抖音,西瓜,悟空问答,内涵段子,懂车帝… 

一系列的产品围绕内容路线组成的矩阵,核心在于内容丰富度,要让用户在头条系统内部消耗每一滴时间。各个产品之间产生的协同效应,肉眼可见。 

今天,这里要讲的不是头条产品之间的协同棒棒的,而是,产品内部不同需求之间的协同没有做到和产品一样棒。

 虽然现在是巨头相互封闭的时代,但大家如果用心使用一个App,比如今日头条,一定会发现,在一定角度,它们并没有封闭到完全密不透风,它们会努力让你把App里的内容传播出去,为App导流。

 这些出口,就是攻破App严密堡垒的基础。不同的平台,不同的应用,不同的开发人员,稍有疏忽,就出现漏洞。 

再叠加部署不同功能的不同服务器之间的缺乏沟通,很容易就会导致精心设计的防线形同虚设。 

对头条这类内容大佬而言,它的安全,一个重要的方面就是内容安全,既要防止不合规内容的产生,这依赖于数量庞大的审核员产业大军,又要防止内容被扒过度,这依靠的是在爬虫路上设置的重重障碍。 

当今主流的操作系统平台,不外乎Android,iOS,Windows,Linux,macOS,在这些平台上,再叠加各种不同的应用,比如微信,各类浏览器等。

这直接导致一个内容app,如果想支持不同的平台不同访问端,就需要对各个平台和访问端进行个性化定制。个性化定制开发人员的最低水平将决定安全水桶的高度。 

在本质上,网络安全问题就是人的问题。由于开发者、维护者、使用者能力和项目侧重点的差异,使各个大小单元之间出现协同的不匹配,导致最终出现安全问题。

继续回到头条,虽然号称App工厂,产品开发流水线化,技术先进性相比其它巨头有很大优势。但不可避免的仍然需要对不同访问手段进行定制化开发,这必然会导致短板出现。 

在内容安全的反爬方面,头条的一个重要措施,就是各种数值的特征校验,它贯彻得很好,各个平台都在使用,阵型相当统一,再次体现了技术理念的领先性。 

上一次,吭哧吭哧地分析的头条signature算法,就是这个特征校验的过程,建议大家看看:

头条小视频和西瓜视频signature签名算法(请猛戳)

虽然算法分析的文字里已经将算法描述透彻,可以轻易利用起来,但真心的,对这个算法的设计我还是蛮佩服的,它利用了好多种平台特性,对多种爬虫手段例如Selenium进行了检测,看得出开发者经验非常丰富,配得上头条高大威猛的待遇。

技术上,这里继续以今日头条内小视频和西瓜视频为靶子来给大家讲故事。毕竟这个视频占了今日头条APP版面的2/3,看得出这是字节跳动的更广阔未来。

我们先看下头条的视频使用的场景,以便对它有个总体的把握,它可以在APP内、各种浏览器内、微信等社交工具内访问使用,包括Android、iOS、PC等平台,加起来估计有数十种使用场景,当然,各个浏览器及微信等社交工具内的使用,目的是为APP引流。

按常理,这么多使用场景,再财大气粗,也不可能都被重视,对不对?这将必然导致大大小小的安全问题出现。

在只考虑各个单一使用场景,这段签名验证算法应用得很好,都用到了,并且都达到了算法的目的,再夸一次。

夸完了,接下来应该就是批了。

下面来看下用到签名算法的场景。

首先移动浏览器端访问的签名算法:

640?wx_fmt=jpeg

里面获取的是一个视频的描述信息,例如视频资源id,视频标题描述等。

再看PC端浏览器访问的签名算法:

640?wx_fmt=jpeg

里面获取的是一些与视频关联的信息。

它们都是由访问视频网页页面时自动触发的。对同一个URL,头条服务器会根据不同的UA参数返回不同的跳转。

移动端浏览器访问的302跳转是这样:

640?wx_fmt=jpeg

PC端访问的302跳转是这样:

640?wx_fmt=jpeg

这两个是不同的页面,里面的内容有差异,导致最后需要从服务器获取的关键数据不同。

其中,移动端浏览器需要获取的是一个视频资源的ID,有这个ID,就能获取到视频资源在CDN中的最终资源地址。

这个资源ID在移动端的获取自然是需要使用签名验证算法进行保护的。

但是,在PC端浏览器的页面中,这个资源ID却直接被请求下来了。

两边对同一个数据处理不一致,移动浏览器端被保护的内容在PC浏览器端一点都没有被保护。

这不就相当于没有进行保护吗?

层层安全防护,结果由于各个平台的相互分隔,没能做到数据处理的完全一致,导致安全措施形同虚设。

这白白浪费了好多的资源,都是白花花的银子呀,看着都心疼。

这种由于不同平台的差异,从而实现不同,导致安全出现问题的情况,很普遍。不仅实力强劲的今日头条这样,其它大大小小的公司也一样。

技术上,不分肤色人种,不分派系层次,所有的企业都会犯这个类型的错误。

只能在设计时站高点,尽量避免问题的产生。

安全上,时刻要考虑多平台实现的一致性和协同性。

各位大佬请点击“在看”,留下你的印记↘。

posted @ 2019-08-26 08:00  一二一二一  阅读(717)  评论(0编辑  收藏  举报