防盗链方法及系统的制作方法

文档序号:10555551阅读:326来源:国知局
防盗链方法及系统的制作方法
【专利摘要】本发明提供一种防盗链方法,包括:接收用户的播放请求,获取播放请求参数,所述播放请求参数包括用户签名和其他参数,所述其他参数至少包括用户ID;根据所述用户的播放请求中的用户ID,确定与所述用户ID对应的密钥;基于所述其他参数和所述密钥生成校验签名;比较所述用户签名与所述校验签名,当所述用户签名与所述校验签名不匹配时,拒绝用户的播放请求。本发明还提供了一种防盗链系统,从而减少了被盗链的可能,使得防盗更加地彻底,同时也减轻了防盗过程中的工作量。
【专利说明】
防盗链方法及系统
技术领域
[0001]本发明实施例涉及互联网安全技术领域,尤其涉及一种防盗链方法及系统。
【背景技术】
[0002]随着互联网技术以及多媒体技术的快速发展,大量的安全问题应运而生,盗链就是其中的一方面。盗链是指服务提供商自己不提供服务的内容,通过技术手段绕过其它有利益的最终用户界面(如广告),直接在自己的网站上向最终用户提供其它服务提供商的服务内容,片区最终用户的浏览和点击率。
[0003]例如,实际应用中,一些不法商家可以通过相关技术(如网络爬虫技术)爬取多媒体服务提供商提供的流媒体文件的URL地址(Uniform Resource Locator,统一资源定位符),将URL地址里面的一些代码更改后放到自己的空间中,待用户想观看这个视频时,就直接点击这个链接后就可以直接播放,而真正的服务提供商却不知道自己的资源已经被盗链了,给真正的服务提供商造成了巨大的经济损失。
[0004]在盗链的过程中,受益者不提供资源或提供很少的资源,而真正的服务提供商却得不到任何的收益,并且还要承受因为被盗链所带来的一系列危害,如:网站盗链会大量消耗被盗链网站的带宽,导致被盗链网站的访问速度变慢,真正的点击率也许会很小,而且如果一台服务器中存在大量这样的盗链情况,服务器的速度就会下降,网络卡顿,给用户带来不好的体验,还严重损害了被盗链网站的利益,更严重的如果盗链网站还有色情、反动内容,更会对被盗链网站的名誉造成严重影响。因此互联网尤其是无线互联网安全领域,盗链安全防护势在必行。
[0005]现有的防盗链方案按原理可分为如下几种:
[0006]I)不定期更改文件名或者文件目录
[0007]此防盗链方法是,通过随机的更改资源文件的名称或者地址来实现防盗链的功能。此方法优点是简单易行,缺点是工作量很大,而且可能会影响用户的正常下载。
[0008]2)限制引用页
[0009]这种防盗链的原理是,根据HTTP请求的HTTP_REFERER字段来限制是否为可信来源发起的请求。或者可以结合.htaccess等重写功能实现更进一步的防盗链功能。
[0010]此方法相比于第一种突破难度要大。缺点则在于每次访问都需要操作.htaccess文件对性能有影响,同时在服务端开启重写功能会有一些限制,而且用户可以通过伪装HTTP_REFERER的方式突破限制。
[0011]3)加密认证
[0012]这种防盗链方式,首先从客户端获取用户信息,然后根据特定的规则将用户信息组成加密字符串作为身份验证信息,传给后台防盗链系统进行身份验证。只有验证成功,月艮务端才会把用户需要的文件传给用户,但这种方式容易被破解,使得防盗链不彻底。
[0013]4)文件伪装
[0014]此防盗链方法需要服务端的功能加以配合,原理就是当用户需要请求对应的资源的时候,服务端会对用户的sess 1n或者cookie或者HTTP_REFERER进行校检。
[0015]此方法由于不会暴露文件的真实地址,且会对用户的身份进行验证,因此防盗链效果很好。但是此服务由于需要对用户信息做一些判断,因此效率会受到影响,且不适合视频点播这种服务场景。

【发明内容】

[0016]为了减少防盗链中工作量并解决引用地址容易被伪造以及加密字符串容易被破解而导致的防盗链不彻底的情况,一方面,本发明实施例提供一种防盗链方法,包括:
[0017]接收用户的播放请求,获取播放请求参数,所述播放请求参数包括用户签名和其他参数,所述其他参数至少包括用户ID;
[0018]根据所述用户的播放请求中的用户ID,确定与所述用户ID对应的密钥;
[0019]基于所述其他参数和所述密钥生成校验签名;
[0020]比较所述用户签名与所述校验签名,当所述用户签名与所述校验签名不匹配时,拒绝用户的播放请求。
[0021]本发明实施例提供一种防盗链系统,包括:
[0022]接收模块,用于接收用户的播放请求,获取播放请求参数,所述播放请求参数包括用户签名和其他参数,所述其他参数至少包括用户ID;
[0023]密钥确定模块,用于根据所述用户的播放请求中的用户ID,确定与所述用户ID对应的密钥;
[0024]校验签名生成模块,用于基于所述其他参数和所述密钥生成校验签名;
[0025]签名比较模块,用于比较所述用户签名与所述校验签名;
[0026]播放请求处理模块,用于当所述用户签名与所述校验签名不匹配时,拒绝用户的播放请求。
[0027]本发明实施例提供的防盗链方法及系统,通过对接收用户的播放请求,获取播放请求参数,所述播放请求参数包括用户签名和其他参数,所述其他参数至少包括用户ID;根据所述用户的播放请求中的用户ID,确定与所述用户ID对应的密钥;基于所述其他参数和所述密钥生成校验签名;比较所述用户签名与所述校验签名,当所述用户签名与所述校验签名不匹配时,拒绝用户的播放请求的方式进行防盗减少了被盗链的可能,使得防盗更加地彻底,同时也减轻了防盗过程中的工作量。
【附图说明】
[0028]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0029]图1为本发明一实施例的防盗链方法的流程图;
[0030]图2为本发明另一实施例的防盗链方法的流程图;
[0031]图3为本发明一实施例的防盗链系统的示意图。
【具体实施方式】
[0032]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0033]需要说明的是,在不冲突的情况下,本申请中的实施方式及实施方式中所涉及到的技术特征彼此之间可以相互组合。
[0034]本发明可应用在各种视频网站(如乐视、优酷、PPTV、爱奇艺等)中对视频的点播、直播等各种场景下。
[0035]本发明实施例中可以通过硬件处理器(hardware processor)来实现相关功能模块。
[0036]图1为本发明防盗链方法实施例的流程示意图。如图1所示,本发明防盗链方法包括:
[0037]步骤101:接收用户的播放请求,获取播放请求参数,所述播放请求参数包括用户签名和其他参数,所述其他参数至少包括用户ID;
[0038]步骤102:根据所述用户的播放请求中的用户ID,确定与所述用户ID对应的密钥;
[0039]步骤103:基于所述其他参数和所述密钥生成校验签名;
[0040]步骤104:比较所述用户签名与所述校验签名,当所述用户签名与所述校验签名不匹配时,拒绝用户的播放请求。
[0041 ]如图2所示,另一实施例的防盗链方法,包括:
[0042]步骤201:接收用户的播放请求,获取播放请求参数,所述播放请求参数包括用户签名和其他参数,所述其他参数至少包括用户ID和请求时间戳;
[0043]步骤202:根据所述用户的播放请求中的用户ID,确定与所述用户ID对应的密钥;
[0044]步骤203:基于所述其他参数和所述密钥生成校验签名;
[0045]步骤204:比较所述用户签名与所述校验签名;
[0046]步骤205:当所述用户签名与所述校验签名不匹配时,拒绝用户的播放请求。
[0047]步骤206:当所述签名与所述校验签名匹配时,进一步判断所述请求时间戳是否位于预定有效时长内,当所述时间戳超过所述预定有效时长时,拒绝用户的播放请求。
[0048]上述签名验证通过时,可以认为请求时间戳信息是可信的,进而才能对请求时间戳进行验证。
[0049]服务器根据请求时间戳是否位于预定有效时长内,对用户的使用权限进行校验,校验通过时,才会向用户发送流媒体数据。
[0050]服务器根据请求时间戳是否位于预定有效时长内,通过判断所述请求时间戳超过所述预定有效时长来实时的授权用户使用资源的时间,从而更好地保证了资源的安全使用,更利于对资源的使用控制和管理。
[0051 ]上述步骤“基于所述其他参数和所述密钥生成校验签名”包括:
[0052]基于所述其他参数,对照参数/键/值表,确定与所述其他参数对应的键/值数列,将所述键/值数列按照预定顺序排序并拼接形成第一字符串;
[0053]在所述字符串后拼接所述密钥生成第二字符串;
[0054]计算所述第二字符串的md5值;
[0055]将所述md5值转换为16进制字符串,生成校验签名。
[0056]为了使服务器端与客户端匹配,从而进行服务器端与客户端之间的数据沟通,上述预定顺序为针对键的升序。
[0057]上述第一字符串是由gpc(getplayer config获取视频播放配置信息)系统将用户的播放请求中的其他参数按照key的升序顺序排列后,将key值和value值顺序连接组成。字符串拼装完毕后存放在gpc系统中。
[0058]上述实施例中所述其他参数例如还包括调用API接口名称、接口版本。根据不同播放请求中的其他参数的不同,例如访问用户ID、时间戳、API接口名称、接口版本的不同,能够做到每个用户均拥有独立的字符串信息,该字符串不易被模仿,如果盗链者任意串改所述字符串后,就无法通过验证,相应的就会拒绝访问服务。
[0059]当然在实际的应用当中,上述其他参数为访问用户ID、时间戳、API接口名称、接口版本但并不限制于访问用户ID、时间戳、API接口名称、接口版本,所述播放请求中的其他参数根据用户点播或直播的具体情况而定,例如,其他参数还可以为用户直播或点播的活动名称,直播或点播的开始时间、结束时间、直播或点播流的码率类型(例如流畅、标清、高清、超清、原画)、播放模式(实时直播、延时直播)以及用户所观看的活动类型(发布会、婚礼、年会、体育、财经、游戏、访谈)等。
[0060]上述与播放请求中其他参数所对应的参数/键/值表是根据历史用户的直播或点播的请求情况预先设定,并且该表格存储在数据库中,待使用时将其调出来与用户的播放请求参数对比,确定与参数对应的键以及键所对应的值。与此同时,该已知的参数/键/值表还可以定时或根据需要进行更新,提高表格的精确度。例如,最新出了一部电视剧或者电影,这时就要适应性的在所述参数/键/值表将这部电视剧或者电影的名称以及相关的一些参数添加到所述参数/键/值表中,以保证下面的操作不会出现错误。
[0061]实际生活中,人们的生活压力很大,特别是北京、上海、广州、深圳的上班族,生活节奏越来越快,工作日益增多,生活以及工作的压力也愈来愈大,为了缓解压力,人们通常会利用星期六星期天的空闲时间从视频网站(例如优酷、乐视、PPTV、暴风影音等)中搜一些评分很高的电影观看来娱乐自己,放松心情,但点开之后往往会发现这些评分很高的电影通常为会员影片,需要付费才能观看,为了满足自己看电影的意愿又不用付费,人们会充分利用互联网的资源,浏览各种网站,以期待能够观看这些电影,这时非法的商家为了从中牟利就会盗取视频网站的观看地址提供给用户,从而造成视频网站的资源被盗取以及被盗网站的带宽消耗严重,网速下降,为了有效地打击非法商家,维护视频网站的利益,这时可以通过接收用户ID、API接口名称、接口版本、请求时间戳、用户观看影片名称、点播影片时长以及影片所属类型(例如恐怖片、喜剧片、爱情片、武打片)等,并根据用户的ID确定出与所述用户ID对应的密钥,然后根据上述参数和密钥生成校验签名,若所述用户签名与所述校验签名不匹配时,则拒绝用户的播放请求的方式来达到防止盗链的效果,维护视频网站的利益。
[0062]上述实施例中防盗链方法的进一步改进在于,当签名验证通过时,可以知道请求时间戳信息为真实可信的,为了达到更有效地防盗链,进一步要进行判断所述请求时间戳是否位于预定有效时长内,当所述时间戳超过所述预定有效时长时,拒绝用户的播放请求。从而进行实时的授权用户使用资源的时间,从而更好地保证了资源的安全使用,更利于对资源的使用控制和管理。
[0063]本发明不会影响访问者所请求的链接,也不影响网站业务逻辑,保证了方便、便捷的使用效果;通过对访问请求中的签名验证、字符串验证以及时间戳信息验证多重防盗,大幅度地减小了其被盗链的可能,从原理上解决了多个访问者使用同一代理对网站进行访问,访问者IP相同而导致无法区分的问题。本发明的可行性高,大多数网站可以通过过滤器等简单技术实现,不会对网站原有业务造成影响。
[0064]本发明实施例提供的防盗链方法,通过对接收用户的播放请求,获取播放请求参数,所述播放请求参数包括用户签名和其他参数,所述其他参数至少包括用户ID;根据所述用户的播放请求中的用户ID,确定与所述用户ID对应的密钥;基于所述其他参数和所述密钥生成校验签名;当所述用户签名与所述校验签名不匹配时,拒绝用户的播放请求的方式进行防盗减少了被盗链的可能,使得防盗更加地彻底,同时也减轻了防盗过程中的工作量。
[0065]图3为本发明防盗链系统实施例的结构示意图。如图3所示,本发明防盗链系统包括:
[0066]接收模块,用于接收用户的播放请求,获取播放请求参数,所述播放请求参数包括用户签名和其他参数,所述其他参数至少包括用户ID;
[0067]密钥确定模块,用于根据所述用户的播放请求中的用户ID,确定与所述用户ID对应的密钥;
[0068]校验签名生成模块,用于基于所述其他参数和所述密钥生成校验签名;
[0069]签名比较模块,用于比较所述用户签名与所述校验签名;
[0070]播放请求处理模块,用于当所述用户签名与所述校验签名不匹配时,拒绝用户的播放请求。
[0071]本发明的另一实施例的防盗链系统包括:
[0072]接收模块,用于接收用户的播放请求,获取播放请求参数,所述播放请求参数包括用户签名和其他参数,所述其他参数至少包括用户ID和请求时间戳;
[0073]密钥确定模块,用于根据所述用户的播放请求中的用户ID,确定与所述用户ID对应的密钥;
[0074]校验签名生成模块,用于基于所述其他参数和所述密钥生成校验签名;
[0075]签名比较模块,用于比较所述签名与所述校验签名;
[0076]时效判断模块,用于当所述签名与所述校验签名匹配时,进一步判断所述请求时间戳是否位于预定有效时长内;
[0077]播放请求处理模块,用于当所述用户签名与所述校验签名不匹配时,拒绝用户的播放请求,当所述时间戳超过所述预定有效时长时,拒绝用户的播放请求。
[0078]上述校验生成模块包括:
[0079]第一字符串生成单元,用于基于所述其他参数,对照参数/键/值表,确定与所述其他参数对应的键/值数列,将所述键/值数列按照预定顺序排序并拼接形成第一字符串;
[0080]第二字符串生成单元,用于在所述字符串后拼接所述密钥生成第二字符串;
[0081]md5计算单元,用于计算所述第二字符串的md5值;
[0082]校验签名生成单元,用于将所述md5值转换为16进制字符串,生成校验签名。
[0083]上述第一字符串生成单元中,所述预定顺序为针对键的升序。
[0084]上述接收模块中的所述其他参数例如还包括调用API接口名称、接口版本。
[0085]本发明实施例提供的防盗链系统,通过接收模块、密钥生成模块、校验签名生成模块、签名比较模块以及播放请求处理模块进行在用户视频直播或点播过程中的防盗链,减少了被盗链的可能,使得防盗更加地彻底,同时也减轻了防盗过程中的工作量。
[0086]以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0087]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如R0M/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0088]最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
【主权项】
1.一种防盗链方法,其特征在于,包括: 接收用户的播放请求,获取播放请求参数,所述播放请求参数包括用户签名和其他参数,所述其他参数至少包括用户ID; 根据所述用户的播放请求中的用户ID,确定与所述用户ID对应的密钥; 基于所述其他参数和所述密钥生成校验签名; 比较所述用户签名与所述校验签名,当所述用户签名与所述校验签名不匹配时,拒绝用户的播放请求。2.根据权利要求1所述的方法,其特征在于,所述其他参数包括请求时间戳, 当所述签名与所述校验签名匹配时,进一步判断所述请求时间戳是否位于预定有效时长内, 当所述时间戳超过所述预定有效时长时,拒绝用户的播放请求。3.根据权利要求1所述的方法,其特征在于,所述基于所述其他参数和所述密钥生成校验签名包括: 基于所述其他参数,对照参数/键/值表,确定与所述其他参数对应的键/值数列,将所述键/值数列按照预定顺序排序并拼接形成第一字符串; 在所述字符串后拼接所述密钥生成第二字符串; 计算所述第二字符串的md5值; 将所述md5值转换为16进制字符串,生成校验签名。4.根据权利要求3所述的方法,其特征在于,所述预定顺序为针对键的升序。5.根据权利要求1-4中任一项所述的方法,其特征在于,所述其他参数还包括调用API接口名称、接口版本。6.一种防盗链系统,包括: 接收模块,用于接收用户的播放请求,获取播放请求参数,所述播放请求参数包括用户签名和其他参数,所述其他参数至少包括用户ID; 密钥确定模块,用于根据所述用户的播放请求中的用户ID,确定与所述用户ID对应的密钥; 校验签名生成模块,用于基于所述其他参数和所述密钥生成校验签名; 签名比较模块,用于比较所述用户签名与所述校验签名; 播放请求处理模块,用于当所述用户签名与所述校验签名不匹配时,拒绝用户的播放请求。7.根据权利要求6所述的系统,其特征在于,所述其他参数包括请求时间戳,所述系统还包括时效判断模块,用于当所述签名比较模块确定所述签名与所述校验签名匹配时,进一步判断所述请求时间戳是否位于预定有效时长内; 所述播放请求处理模块,用于当所述签名与所述校验签名匹配但所述请求时间戳超过所述预定有效时长时,拒绝用户的播放请求。8.根据权利要求6所述的系统,其特征在于,所述校验签名生成模块包括: 第一字符串生成单元,用于基于所述其他参数,对照参数/键/值表,确定与所述其他参数对应的键/值数列,将所述键/值数列按照预定顺序排序并拼接形成第一字符串; 第二字符串生成单元,用于在所述字符串后拼接所述密钥生成第二字符串; md5计算单元,用于计算所述第二字符串的md5值; 校验签名生成单元,用于将所述md5值转换为16进制字符串,生成校验签名。9.根据权利要求8所述的系统,其特征在于,所述预定顺序为针对键的升序。10.根据权利要求6-9所述的系统,其特征在于,所述其他参数还包括调用API接口名称、接口版本。
【文档编号】H04N21/2347GK105915494SQ201510890714
【公开日】2016年8月31日
【申请日】2015年12月7日
【发明人】金宗锐, 王栋浩, 刘钧石
【申请人】乐视云计算有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1