一种防盗链的方法和装置制造方法

文档序号:7807820阅读:291来源:国知局
一种防盗链的方法和装置制造方法
【专利摘要】本发明实施例提供了一种防盗链的方法和装置,该方法包括:HTTP服务器接收HTTP请求;从所述HTTP请求中获取特征信息;判断所述获取的特征信息是否满足本地保存的盗链规则;如果是,则对所述HTTP请求进行防盗链处理。本申请提高了防盗链的效率。
【专利说明】一种防盗链的方法和装置

【技术领域】
[0001]本发明涉及网络【技术领域】,特别是涉及一种防盗链的方法和装置。

【背景技术】
[0002]一些服务提供商自己不提供服务的内容,而是通过技术手段绕过其它有利益的最终用户界面(如广告),直接在自己的网站上向最终用户提供其它服务提供商的服务内容,造成正常的统一资源定位符(Uniform Resource Locator, URL)指向的资源被非法使用(即,盗链),骗取最终用户的浏览和点击。受益者不提供资源或提供很少的资源,而真正的服务提供商却得不到任何的收益。
[0003]为了避免上述情况的发生,现有技术提出了防盗链的方法,防盗链也称为反盗链,用于防止正常的URL被非法利用。
[0004]常用的防盗链方法包括:在超文本传输协议(Hypertext transfer protocol,HTTP)服务器端进行人工封禁。具体地,人工判断出某一个HTTP请求是否属于盗链,如果是,则进行人工封禁,否则,正常执行该HTTP请求。该方法需要人工来判断每一个HTTP请求是否属于盗链才能进行防盗链操作,在服务器较多的情况下,需要逐个服务器依次进行人工干预,费事较长,效率较低。
[0005]因此,目前需要本领域技术人员迫切解决的一个技术问题就是:如何快速执行防盗链操作。


【发明内容】

[0006]本发明实施例所要解决的技术问题是提供一种防盗链的方法,以便快速执行防盗链操作。
[0007]相应的,本发明实施例还提供了一种防盗链的装置,用以保证上述方法的实现及应用。
[0008]为了解决上述问题,本发明公开了一种防盗链的方法,包括:超文本传输协议HTTP服务器接收HTTP请求;从所述HTTP请求中获取特征信息;判断所述获取的特征信息是否满足本地保存的盗链规则;如果是,则对所述HTTP请求进行防盗链处理。
[0009]优选地,所述盗链规则为包含盗链特征的盗链规则表达式;在所述表达式中,所述盗链特征通过以下至少之一连接:比较运算符、逻辑运算符、和数据运算符。
[0010]优选地,判断所述获取的特征信息是否满足本地保存的盗链规则,包括:判断所述获取的特征信息是否满足所述盗链规则表达式。
[0011]优选地,如果所述获取的特征信息不满足本地保存的盗链规则,则执行所述HTTP请求。
[0012]优选地,执行所述HTTP请求并得到请求返回的数据;判断将所述HTTP请求的返回数据是否满足本地保存的盗链规则;如果是,则对所述HTTP请求进行防盗链处理;否则,将所述HTTP请求返回的数据发送给发起所述HTTP请求的设备。
[0013]优选地,所述本地保存的盗链规则为盗链规则表达式,所述盗链规则表达式包含盗链特征包括以下至少之一:播放平台、不支持播放的数据格式、不允许播放的数据名称、和不允许播放数据的区域;在所述表达式中,所述盗链特征通过以下至少之一连接:比较运算符、逻辑运算符、和数据运算符。
[0014]优选地,在判断所述获取的特征信息是否满足本地保存的盗链规则之前,所述方法还包括:
[0015]接收管理员输入的盗链规则表达式;
[0016]自动使用所述盗链规则表达式更新所述本地保存的盗链规则表达式。
[0017]为了解决上述问题,本发明公开了一种防盗链的装置,用于HTTP服务器中,包括:请求模块,用于从所述HTTP请求中获取特征信息;判断模块,用于判断所述获取的特征信息是否满足本地保存的盗链规则;处理模块,用于在所述判断模块的判断结果为是的情况下,对所述HTTP请求进行防盗链处理。
[0018]优选地,所述盗链规则为包含盗链特征的盗链规则表达式;在所述表达式中,所述盗链特征通过以下至少之一连接:比较运算符、逻辑运算符、和数据运算符。
[0019]优选地,所述判断模块用于判断所述获取的特征信息是否满足所述盗链规则表达式。
[0020]与现有技术相比,本发明实施例包括以下优点:
[0021 ] 在现有技术中,在HTTP服务器侧,人工判断HTTP请求是否为盗链,如果是,则进行防盗链处理,这种方法依靠人工来操作,效率较低。在本申请中,通过将HTTP服务器侧存储的盗链规则和HTTP请求中的特征信息进行匹配,即可自动获知HTTP请求是否为盗链,然后再进行相应的处理,从而提高了防盗链的效率。

【专利附图】

【附图说明】
[0022]图1是本发明的一种防盗链的方法实施例的步骤流程图;
[0023]图2是本发明的另一种防盗链的方法实施例的步骤流程图;
[0024]图3是本发明的一种防盗链的装置实施例的结构框图;
[0025]图4是本发明一种防盗链的装置实施例的优选的结构框图;
[0026]图5是本发明另一种防盗链的装置实施例的结构框图。

【具体实施方式】
[0027]为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和【具体实施方式】对本发明作进一步详细的说明。
[0028]本发明实施例的核心构思之一在于将灵活多变的盗链特征(C)提前组织成规则表达式(E),然后在HTTP服务器接收到HTTP请求之后;从HTTP请求中获取盗链规则表达式中定义的特征信息(C)的值并将其输入规则表达式(E)进行运算,得到表达式求值的结果。如果该结果为“是”,也就是该HTTP请求的特征信息和本地保存的盗链规则匹配,则对HTTP请求进行防盗链处理。由此可见,在本申请中,通过将HTTP服务器侧存储的盗链规则和HTTP请求中的特征信息进行匹配,即可自动获知HTTP请求是否为盗链,然后再进行相应的处理,相对于现有技术中人工判断是否为盗链,然后再进行防盗链处理的方法,本申请防盗链方法的效率较高。
[0029]参照图1,示出了本发明的一种防盗链的方法实施例的步骤流程图,具体可以包括如下步骤:
[0030]步骤102,HTTP服务器接收HTTP请求;
[0031 ] 优选地,该HTTP服务器可以是nginx服务器,其中,该nginx服务器是一个轻量级的网页服务器、反向代理服务器以及电子邮件代理服务器。本发明实施例并不限于此,应当理解的是,在阅读本发明实施例的基础上,本领域技术人员可以将本发明实施例所述方案应用于其他HTTP服务器。
[0032]步骤104,从HTTP请求中获取特征信息;
[0033]在具体实现过程中,HTTP请求的特征信息可根据该请求URL对应资源的特点自定义。常见的特征信息包含以下至少之一:用户代理(User Agent,UA)、互联网协议IP地址、HTTP请求的引用地址(referer) ;HTTP服务器在接收到该HTTP请求之后,可以拦截该HTTP请求,从中获取特征信息。
[0034]步骤106,判断获取的特征信息是否满足本地保存的盗链规则;
[0035]在本发明实施例的一个优选实例中,盗链规则为包含盗链特征的表达式,盗链特征通过以下至少之一连接:比较运算符、逻辑运算符、和数据运算符,优选地,盗链特征包括以下至少之一:用户代理(User Agent, UA)、请求发起者的网际协议(Internet Protocol,IP)地址、HTTP请求的引用地址(referer);在表达式中。通过表达式的形式,HTTP可以方便地了解盗链的特征,判断步骤104中获取的特征信息是否满足该表达式,如果满足,则确定该HTTP请求为盗链,否则,确定该HTTP请求不是盗链。通过该实施例,HTTP服务器可以快速确定某一个HTTP请求是否为盗链,从而进行相应的操作,并且,规则表达式可以灵活地表示各种复杂的盗链规则,因此,本实施例具有一定的灵活性。
[0036]其中,上述表达式可以采用逆波兰表达式(Reverse Polish notat1n, RPN,也称为逆波兰记法)的形式,其中,RPN是一种是由波兰数学家扬.武卡谢维奇1920年引入的数学表达式方式,在逆波兰记法中,所有操作符置于操作数的后面,因此也被称为后缀表示法。逆波兰记法不需要括号来标识操作符的优先级。
[0037]在本发明实施例的一个优选实例中,本地保存的盗链规则可以是自定义的。例如,HTTP服务器可以接收管理员输入的盗链规则;并自动使用输入的盗链规则更新HTTP服务器本地保存的盗链规则。其中,可以通过分布式协调服务(Zook^per)来实现本地保存的盗链规则的自动更新。Zookeeper是阿帕奇(Apache)软件基金会的一个软件项目,为大型分布式计算提供开源的分布式配置服务、同步服务和命名注册。通过本实施例,实现了本地保存的盗链规则的自动更新。
[0038]步骤108,如果获取的特征信息满足本地保存的盗链规则,则对HTTP请求进行防盗链处理。
[0039]在本发明实施例的一个优选实例中,如果步骤106中判断结果为满足,则说明该HTTP请求为盗链,此时需要对HTTP请求进行防盗链处理,防盗链处理的操作可以包括:不执行该HTTP请求,和/或,返回预定的信息给发送该HTTP请求的设备,例如,返回错误的信息给发送该HTTP请求的设备。
[0040]如果在步骤106中的判断结果为不满足,则说明该HTTP请求不是盗链,可以正常执行该HTTP请求。
[0041]在本发明实施例的另一个优选实例中,在执行HTTP请求之后,HTTP服务器获取执行HTTP请求之后返回的数据;判断数据是否满足本地保存的盗链规则;如果满足,则对HTTP请求进行防盗链处理,否则,将数据发送给发送HTTP请求的设备。在本实施例中,将进行两步盗链判断,第一步是接收到HTTP请求时进行的判断,第二步是执行HTTP请求之后进行的判断。在具体实现时,可能需要根据返回的具体数据来判断是否响应HTTP请求,例如,HTTP请求用于请求一个名称为A的视频,发送HTTP请求的设备不支持m3u8格式的视频,如果HTTP服务器返回的就是m3u8格式的视频A,则即便将该视频A发送给发送HTTP请求的设备,该设备也不能正常播放该视频A,因此,需要根据反馈的具体数据来判断是否响应HTTP请求。在本实施例中,根据返回的具体数据来判断是否将数据发送给发送HTTP请求的设备,提高了数据传输的有效性。优选地,盗链规则为包含盗链特征的表达式,盗链特征可根据返回数据的特征进行自定义。常见的可能包括以下至少之一:播放平台、不支持播放的数据格式、不允许播放的数据名称、和不允许播放数据的区域;在表达式中,盗链特征通过以下至少之一连接:比较运算符、逻辑运算符、和数据运算符。
[0042]在现有技术中,在HTTP服务器侧,人工判断HTTP请求是否为盗链,如果是,则进行防盗链处理,这种方法依靠人工来操作,效率较低。在本实施例中,通过将HTTP服务器侧存储的盗链规则和HTTP请求中的特征信息进行匹配,即可自动获知HTTP请求是否为盗链,然后再进行相应的处理,从而提高了防盗链的效率。
[0043]本发明实施例还提供了一种防盗链的方法,下面对该方法进行具体说明。参照图2,示出了本发明的一种防盗链的方法实施例的步骤流程图,具体可以包括如下步骤:
[0044]步骤202,把每个盗链行为的特征总结成一个运算表达式(E),该表达式可根据HTTP请求的特点自定义。常见的特征信息包括以下至少之一:用户代理UA、IP地址、该请求引用地址(referer)等。
[0045]E所支持的操作符分为三类:
[0046]比较运算符,包括以下至少之一:
[0047]等于($EQ)、大于($GT)、大于或等于($GTE)、包含($IN)、小于($LT)、小于或等于($LTE)、不等于($NE)、和不包含($_ ;
[0048]逻辑运算符,包括以下至少之一:
[0049]或($0R)、与($AND)、非($Ν0Τ)、和取反($N0R);
[0050]数据运算符,包括以下至少之一:
[0051]字段是否存在($EXISTS)和正则匹配($REGEX)。
[0052]一个防盗链的表达式(E)逻辑上可以表达为:
[0053]Cl = = Vl && C2 $regex /V2/
[0054]其中,Cl和C2是管理员根据HTTP请求的特点自定义的特征变量,例如,特征变量Cl 的名称可以是 http_user_agent,其预期的值 Vl 为 Jakarta Commons-HttpClient/3.1。
综上,一个合法的表达式可以表不为:
[0055]

【权利要求】
1.一种防盗链的方法,其特征在于: 超文本传输协议HTTP服务器接收HTTP请求; 从所述HTTP请求中获取特征信息; 判断所述获取的特征信息是否满足本地保存的盗链规则; 如果是,则对所述HTTP请求进行防盗链处理。
2.根据权利要求1所述的方法,所述盗链规则为包含盗链特征的盗链规则表达式; 在所述表达式中,所述盗链特征通过以下至少之一连接:比较运算符、逻辑运算符、和数据运算符。
3.根据权利要求2所述的方法,其特征在于:判断所述获取的特征信息是否满足本地保存的盗链规则,包括: 判断所述获取的特征信息是否满足所述盗链规则表达式。
4.根据权利要求1所述的方法,其特征在于: 如果所述获取的特征信息不满足本地保存的盗链规则,则执行所述HTTP请求。
5.根据权利要求4所述的方法,其特征在于: 执行所述HTTP请求并得到请求返回的数据; 判断将所述HTTP请求的返回数据是否满足本地保存的盗链规则; 如果是,则对所述HTTP请求进行防盗链处理;否则,将所述HTTP请求返回的数据发送给发起所述HTTP请求的设备。
6.根据权利要求5所述的方法,其特征在于, 所述本地保存的盗链规则为盗链规则表达式,所述盗链规则表达式包含盗链特征包括以下至少之一:播放平台、不支持播放的数据格式、不允许播放的数据名称、和不允许播放数据的区域;在所述表达式中,所述盗链特征通过以下至少之一连接:比较运算符、逻辑运算符、和数据运算符。
7.根据权利要求1所述的方法,其特征在于: 在判断所述获取的特征信息是否满足本地保存的盗链规则之前,所述方法还包括: 接收管理员输入的盗链规则表达式; 自动使用所述盗链规则表达式更新所述本地保存的盗链规则表达式。
8.一种防盗链的装置,用于HTTP服务器中,其特征在于,包括: 请求模块,用于从所述HTTP请求中获取特征信息; 判断模块,用于判断所述获取的特征信息是否满足本地保存的盗链规则; 处理模块,用于在所述判断模块的判断结果为是的情况下,对所述HTTP请求进行防盗链处理。
9.根据权利要求8所述的装置,其特征在于, 所述盗链规则为包含盗链特征的盗链规则表达式; 在所述表达式中,所述盗链特征通过以下至少之一连接:比较运算符、逻辑运算符、和数据运算符。
10.根据权利要求9所述的装置,其特征在于,所述判断模块用于判断所述获取的特征信息是否满足所述盗链规则表达式。
【文档编号】H04L29/06GK104135507SQ201410307988
【公开日】2014年11月5日 申请日期:2014年6月30日 优先权日:2014年6月30日
【发明者】曹张治, 高锋, 赵书礼 申请人:北京奇艺世纪科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1