黑名单存储方法、请求拦截方法、装置及存储介质与流程

文档序号:18741455发布日期:2019-09-21 01:49阅读:407来源:国知局
黑名单存储方法、请求拦截方法、装置及存储介质与流程

本发明属于计算机应用技术领域,特别是涉及一种黑名单存储、请求拦截方法、装置及存储介质。



背景技术:

随着互联网服务的迅猛发展,应用运营商为广大用户提供着越来越丰富的业务服务,但应用运营商如何在保障为用户提供方便快捷的服务的同时,如何确保业务服务器的安全显得至关重要。Web应用防火墙作为被广泛使用的安全保障措施,一般前置在业务服务器部署,通过过滤发送给业务服务器的业务请求,识别并拦截恶意请求,保障业务服务器不受到恶意攻击。

目前,对恶意请求的拦截主要通过黑名单实现,黑名单中存储需要拦截的终端IP地址。当接收到业务请求时,从业务请求中提取IP地址,并遍历黑名单,将该IP地址与黑名单中的IP地址进行匹配,当匹配成功时,拦截该请求;否则,对该请求进行处理。

发明人对上述方案进行研究时发现,当黑名单中的终端IP地址达到一定数量时,对黑名单的匹配速度就会降低,当速度低至一定程度时,会出现拦截超时的情况,此时,需要放行该请求,导致拦截的准确度较低。



技术实现要素:

有鉴于此,本发明提供一种黑名单存储方法、请求拦截方法、装置及存储介质,用以在一定程度上解决现有技术中拦截的准确度较低的问题。

依据本发明的第一方面,提供了一种黑名单存储方法,所述方法包括:

针对预设黑名单中的每个对象,执行以下操作:

将所述对象划分为至少一个分段;

从所述分段中选取目标分段,并为所述目标分段确定层级;

根据所述目标分段以及层级对所述对象进行分桶存储,其中每个分桶中各对象的目标分段及层级相同。

可选的,所述根据所述目标分段以及层级对所述对象进行分桶存储,包括:

确定所述层级对应的至少一个目标分桶,以及每个所述目标分桶对应的分桶条件;

对所述层级从高至低进行排序得到层级序列;

按照所述层级序列的顺序,根据每个层级对应的目标分段以及所述目标分桶对应的分桶条件,将所述对象存储至所述目标分桶。

可选的,所述根据每个层级对应的目标分段以及所述目标分桶对应的分桶条件,将所述对象存储至所述目标分桶,包括:

获取每个层级对应的候选对象;

从所述候选对象中提取目标分段的取值,所述目标分段与所述层级相对应;

若所述取值满足所述目标分桶对应的分桶条件,则将所述候选对象保存至所述目标分桶。

可选的,所述获取每个层级对应的候选对象,包括:

若所述层级为所述层级序列中的第一个层级,则从所述预设黑名单中获取所述层级对应的候选对象;

否则,从所述层级的上一层级对应的目标分桶中获取所述层级对应的候选对象。

可选的,所述预设黑名单为IP地址黑名单,所述对象包括IP地址和对应的过期时间,所述分段为IP地址分段。

依据本发明的第二方面,提供了一种请求拦截方法,所述方法包括:

捕获目标请求,并从所述目标请求中提取目标对象;

从所述目标对象中提取目标分段;

根据所述目标分段确定对应的目标分桶;

在所述目标分桶中匹配所述目标对象;

若匹配成功,则拦截所述目标请求。

可选的,所述根据所述目标分段确定对应的目标分桶,包括:

确定所述目标分段对应的层级;

若所述层级为最低层级,则获取所述层级对应的至少一个目标分桶,以及所述目标分桶对应的分桶条件;

若所述目标分段满足其中一个目标分桶对应的分桶条件,则确定所述目标分桶为所述目标分段对应的目标分桶。

可选的,所述方法还包括:

若所述层级不为最低层级,则确定所述层级的下一层级;

若所述下一层级为最低层级,则从所述下一层级的目标分桶中选取所述目标分段对应的目标分桶。

可选的,所述目标对象为目标IP地址,所述在所述目标分桶中匹配所述目标对象,包括:

从所述目标分桶提取每个对象,所述每个对象包括IP地址和对应的过期时间;

确定所述目标IP地址是否为所述IP地址,以及当前时间是否小于所述过期时间;

若所述目标IP地址为所述IP地址,且当前时间小于所述过期时间,则匹配成功。

依据本发明的第三方面,提供了一种黑名单存储装置,针对预设黑名单中的每个对象,所述装置包括:

划分模块,用于将所述对象划分为至少一个分段;

选取模块,用于从所述分段中选取目标分段,并为所述目标分段确定层级;

存储模块,用于根据所述目标分段以及层级对所述对象进行分桶存储,其中每个分桶中各对象的目标分段及层级相同。

可选的,所述存储模块,包括:

确定子模块,用于确定所述层级对应的至少一个目标分桶,以及每个所述目标分桶对应的分桶条件;

排序子模块,用于对所述层级从高至低进行排序得到层级序列;

存储子模块,用于按照所述层级序列的顺序,根据每个层级对应的目标分段以及所述目标分桶对应的分桶条件,将所述对象存储至所述目标分桶。

可选的,所述根据存储子模块,包括:

获取单元,用于获取每个层级对应的候选对象;

提取单元,用于从所述候选对象中提取目标分段的取值,所述目标分段与所述层级相对应;

存储单元,用于若所述取值满足所述目标分桶对应的分桶条件,则将所述候选对象保存至所述目标分桶。

可选的,所述获取单元,包括:

第一获取子单元,用于若所述层级为所述层级序列中的第一个层级,则从所述预设黑名单中获取所述层级对应的候选对象;

第二获取子单元,用于否则,从所述层级的上一层级对应的目标分桶中获取所述层级对应的候选对象。

可选的,其特征在于,所述预设黑名单为IP地址黑名单,所述对象包括IP地址和对应的过期时间,所述分段为IP地址分段。

依据本发明的第四方面,提供了一种请求拦截装置,所述装置包括:

捕获模块,用于捕获目标请求,并从所述目标请求中提取目标对象;

提取模块,用于从所述目标对象中提取目标分段;

确定模块,用于根据所述目标分段确定对应的目标分桶;

匹配模块,用于在所述目标分桶中匹配所述目标对象;

拦截模块,用于若匹配成功,则拦截所述目标请求。

可选的,所述确定模块,包括:

第一层级确定子模块,用于确定所述目标分段对应的层级;

获取子模块,用于若所述层级为最低层级,则获取所述层级对应的至少一个目标分桶,以及所述目标分桶对应的分桶条件;

第一确定子模块,用于若所述目标分段满足其中一个目标分桶对应的分桶条件,则确定所述目标分桶为所述目标分段对应的目标分桶。

可选的,所述确定模块还包括:

第二层级确定子模块,用于若所述层级不为最低层级,则确定所述层级的下一层级;

第二确定子模块,用于若所述下一层级为最低层级,则从所述下一层级的目标分桶中选取所述目标分段对应的目标分桶。

可选的,所述目标对象为目标IP地址,所述匹配模块,包括:

提取子模块,用于从所述目标分桶提取每个对象,所述每个对象包括IP地址和对应的过期时间;

验证子模块,用于确定所述目标IP地址是否为所述IP地址,以及当前时间是否小于所述过期时间;

匹配子模块,用于若所述目标IP地址为所述IP地址,且当前时间小于所述过期时间,则匹配成功。

针对在先技术,本发明具备如下优点:

本发明实施例提供一种黑名单存储方法、请求拦截方法、装置及存储介质,所述请求拦截方法包括:捕获目标请求,并从所述目标请求中提取目标对象;从所述目标对象中提取目标分段;根据所述目标分段确定对应的目标分桶;在所述目标分桶中匹配所述目标对象;若匹配成功,则拦截所述目标请求,所述目标分桶中存储有黑名单。本发明实施例通过将黑名单进行分桶存储,使得在将目标请求与黑名单进行匹配时,可通过目标分段在对应的目标分桶中进行查询,无需直接对黑名单的所有对象进行对比,提高了黑名单的匹配速度,在一定程度上避免了拦截超时的情况,进而提高了请求的拦截准确性。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1是本发明实施例提供的一种黑名单存储方法的步骤流程图;

图2是本发明实施例提供的一种分桶存储的示意图;

图3是本发明实施例提供的另一种黑名单存储方法的步骤流程图;

图4是本发明实施例提供的一种请求拦截方法的步骤流程图;

图5是本发明实施例提供的另一种请求拦截方法的步骤流程图;

图6是本发明实施例提供的一种黑名单存储装置的结构框图;

图7是本发明实施例提供的一种请求拦截装置的结构框图。

具体实施方式

下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。

图1是本发明实施例提供的一种黑名单存储方法的步骤流程图,所述方法包括:针对预设黑名单中的每个对象,执行以下操作:

步骤110,将所述对象划分为至少一个分段。

通常情况下黑名单存储有被禁止访问或者限制访问的对象,例如IP(Internet Protocol Address,网际协议地址)地址,IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主题分配一个逻辑地址,以此来屏蔽物理地址的差异。IP地址是一个32位的二进制数,通常被分割为4个8位二进制数,通常用点十进制表示成(a.b.c.d)的形式,其中a.b.c.d都是0~255之间的十进制整数。

本发明实施例可以按照预设的规则将对象划分为多个分段,例如,对于IP地址,可以通过分隔符“.”划分,从而可以将a.b.c.d划分为四个分段:a,b,c,d。在划分时可根据实际需要对分段数量进行配置,在实际应用为了保证划分的有效性,所述划分分段操作至少将预设黑名单中的每个对象划分为一个分段。所述分段是与层级相对应的,分段的数量越多,分桶存储的层级数也会相应增加,由于每个分段对应的层级包含有至少一个分桶,相应的随着分段数的增加,分段对应的层级包含的分桶数量也会相应的增加,从而查询效率也会相应的提升。

步骤120,从所述分段中选取目标分段,并为所述目标分段确定层级。

在本发明实施例中,在获取预设黑名单中IP地址的各个分段后,根据实际场景选取对分桶存储具有指导意义的部分分段作为目标分段。例如,当分段中其中一个或多个分段的取值完全相同,则该分段可以不作为分桶存储的目标分段。例如,当对象划分为分段S1、S2、S3、S4,其中,S1是固有取值,取值固定为1(例如,对于我国手机号码,第一位均为1,从而当第一位被划分为一个分段时,该分段不作为目标分段),从而可以将其他分段S2、S3、S4作为目标分段。进一步的,还可以将取值数目较少或取值范围较小的分段不作为目标分段。例如,上述分段S1、S2、S3、S4中,若分段S2的取值包括1和2两种,而分段S3和S4的取值包括100种,从而可以将分段S3、S4作为目标分段。

在实际应用中,所述目标分段的层级可以按照目标分段在所述对象中的顺序确定,例如对于IP地址:a.b.c.d,若步骤110得到的分段包括:a,b,c,d,从中确定两个分段a,b作为目标分段,此时,可以按照顺序确定目标分段a对应第一层级,目标分段b对应第二层级。

另外,还可以按照目标分段的重要性划分层级,将重要性较高的目标分段确定为第一层级,重要性较低的目标分段确定为第二层级,依次类推。例如,若对于上述IP地址的目标分段a,b,若目标分段a的重要性较高,目标分段b的重要性较低,则确定目标分段a对应第一层级,目标分段b对应第二层级。需要说明的是,目标分段的重要性可以根据实际应用场景确定,本发明对其不加以限制。

此外,还可以按照其他规则划分层级,本发明实施例对层级的划分规则不加以限制。目标分段的层级还可以为动态的,例如,在t1时刻,若上述IP地址的分段c和d为目标分段,将目标分段d对应第一层级,将目标分段c对应第二层级;在t2时刻,将目标分段c对应第一层级,将目标分段d对应第二层级。本发明实施例可以动态的调整目标分段的层级划分,实现了灵活的层级确定,能够适应随时间变化的业务场景。

步骤130,根据所述目标分段以及层级对所述对象进行分桶存储,其中每个分桶中各对象的目标分段及层级相同。

分桶可以是多级的,上一目标分段对应的层级的分桶,可以按照下一目标分段划分子分桶,该下一目标分段对应的层级为上一目标分段的下一层级,该下一层级的分桶为上层级分桶的子分桶。具体地,可以根据查找效率是否满足实际需求来决定分桶数量,分桶数量越多,查找效率越高。例如,对于上述IP地址的目标分段c、d,目标分段c对应的层级按照分桶条件COND11、分桶条件COND12划分为两个分桶BCK11、BCK12,如果此时查询效率满足需求,则对目标分段d对应的层级不再进行分桶,即:按照第一层级分桶得到分桶BCK11、BCK12之后,分桶BCK11、BCK12均不存在下一级分桶,分桶BCK11、BCK12中直接保存对象;如果此时查询效率不满足需求,则对目标分段d对应的层级继续进行分桶,例如,对于分桶BCK11,按照分桶条件COND21、COND22将分桶BCK11划分为子分桶BCK111、BCK112;对于分桶BCK12,按照分桶条件COND21、COND22将分桶BCK12划分为子分桶BCK121、BCK122,此时,得到如图2所示的分桶存储结果,可以看出,满足分桶条件COND11且满足分桶条件COND21的对象OBJ1、OBJ2、OBJ3存储至分桶BCK111中,满足分桶条件COND11且满足分桶条件COND22的对象OBJ4、OBJ5存储至分桶BCK112中,满足分桶条件COND12且满足分桶条件COND21的对象OBJ6、OBJ7存储至分桶BCK121中,满足分桶条件COND12且满足分桶条件COND22的对象OBJ8、OBJ9存储至分桶BCK122中。以此类推,当目标分段数目大于3,还可以继续根据下一个目标分段对应的层级进行分桶,直至查询效率满足需求。

上述方案可以应用于IP地址的存储,在确定目标分段以及相对应的层级后,对预设黑名单中的IP地址通过分桶法将每个IP地址存储到对应的分桶中,每个分桶中存储有相同分段和相同层级的IP地址。可以理解,IP地址存储在最后一个层级的分桶中。每个目标分段对应的层级至少包含有一个分桶,如果n为分桶的层级,那么分桶存储IP地址的数量最大值为2564-n

例如有1.1.1.1、1.1.2.2、1.1.3.3、1.1.2.4、1.1.1.4、1.1.8.1、1.1.9.2、1.1.7.4、1.1.6.5九个IP地址分别作为对象OBJ1、OBJ2、OBJ3、OBJ4、OBJ5、OBJ6、OBJ7、OBJ8、OBJ9。结合图2,将IP地址的第三分段c、第四分段d作为目标分段,目标分段c的分桶条件COND11为目标分段c的取值大于等于1,且小于等于5,从而将1.1.1.1、1.1.2.2、1.1.3.3、1.1.2.4、1.1.1.4划分至分桶BCK11中,目标分段c的分桶条件COND12为目标分段c的取值大于等于6,且小于等于9,从而将1.1.8.1、1.1.9.2、1.1.7.4、1.1.6.5划分至分桶BCK12中。

其中,对于分桶BCK11,可以按照目标分段d进一步分桶,目标分段d的分桶条件COND21为目标分段d的取值大于等于1,且小于等于3,从而将1.1.1.1、1.1.2.2、1.1.3.3、1.1.2.4、1.1.1.4中的1.1.1.1、1.1.2.2、1.1.3.3划分至分桶条件COND21对应的分桶BCK111中,目标分段d的分桶条件COND22为目标分段d的取值小于等于4,且小于等于5,从而将1.1.1.1、1.1.2.2、1.1.3.3、1.1.2.4、1.1.1.4中的1.1.2.4、1.1.1.4划分至分桶条件COND22对应的分桶BCK112中。

对于分桶BCK12,可以按照目标分段d进一步分桶,目标分段d的分桶条件COND21为目标分段d的取值大于等于1,且小于等于3,从而将1.1.8.1、1.1.9.2、1.1.7.4、1.1.6.5中的1.1.8.1、1.1.9.2划分至分桶条件COND21对应的分桶BCK121中,目标分段d的分桶条件COND22为目标分段d的取值小于等于4,且小于等于5,从而将1.1.8.1、1.1.9.2、1.1.7.4、1.1.6.5中的1.1.7.4、1.1.6.5划分至分桶条件COND22对应的分桶BCK122中。

可以理解,上述BCK11、BCK12、BCK111、BCK112、BCK121、BCK122仅为了说明时方便区分,可以对其进行编号,分桶的编号可以按照层级和每个层级包含分桶数目确定,也可以根据其他预设规则确定,以使的分桶中的对象不会暴露在外,从而提高结构化黑名单的安全性。

具体地,按照层级和每个层级包含的分桶数目确定分桶的编号,根据每个层级包含的分桶数目对每个层级的分桶进行单独编号之后,可以将该层级的编号拼接至分桶编号中,还可以将该分桶所属的上一层级的分桶编号拼接至该层级的分桶编号中。主要步骤可以包括:首先,对第一层级包含的分桶顺序编号,例如,上述目标分段c的分桶BCK11的单独编号为1,分桶BCK12的单独编号为2;然后,可以将第一层级的编号1拼接在所述单独编号之前得到BCK11的编号为11,分桶BCK12的编号为12;最后,若第一层级还存在下一层级,则针对第一层级的每个分桶,按照第一层级的编号方法对其编号,并将第一层级的分桶编号拼接在最前面,例如,对于分桶BCK11,包含两个分桶BCK111、BCK112,从而可以单独编号为1、2,并将分桶BCK11的编号11作为BCK111、BCK112的编号拼接在最前面,得到分桶BCK111、BCK112的编号为111、112。

本发明实施例提供的一种黑名单存储方法,所述方法包括:针对预设黑名单中的每个对象,执行以下操作:将所述对象划分为至少一个分段;从所述分段中选取目标分段,并为所述目标分段确定层级;根据所述目标分段以及层级对所述对象进行分桶存储,其中每个分桶中各对象的目标分段及层级相同。本发明实施例通过将黑名单中的对象进行分段,设置层级,以进行分桶存储,使得在将目标请求与黑名单进行匹配时,可通过目标分段在对应的目标分桶中进行查询,无需直接对黑名单的所有对象进行对比,提高了黑名单的匹配速度,在一定程度上避免了出现拦截超时的情况,进而提高了请求的拦截准确性。

图3示出本发明实施例提供的另一种黑名单存储方法,所述方法包括:针对预设黑名单中的每个对象,执行以下操作:

步骤210,将所述对象划分为至少一个分段。

本发明实施例中,在预置黑名单的分桶存储过程中,首先需要将十进制的IP地址按照IP地址固有表示形式,将IP地址分为至少一个分段,例如现有1.1.2.3的IP地址,可以将该IP地址按照中间的分隔符“.”划分得到第一分段为1,第二分段为1,第三分段为2,第四分段的为3。通常划分分段的数量是基于分桶存储黑名单的层级决定的。所述划分操作至少对所述预设黑名单中的IP地址划分为一个分段,至多可以划分为四个分段。

该步骤可以参照步骤110的详细说明,在此不再赘述。

步骤220,从所述分段中选取目标分段,并为所述目标分段确定层级。

在本发明实施例中,根据对预设黑名单的存储层级数N提取的N个目标分段以及预设配置,确定每个目标分段对应的层级,所述目标分段和层级之间存在一一对应的关系。所述预设配置可以根据实际需要和操作习惯配置的静态规则或者动态规则。所述静态规则是每个目标分段对应有固定的层级,所述动态规则是根据设置变量动态调节目标分段与层级之间的映射关系,所述变量可以是时间段、IP地址归属地类型等。

该步骤可以参照步骤120的详细说明,在此不再赘述。

步骤230,根据所述目标分段以及层级对所述对象进行分桶存储,其中每个分桶中各对象的目标分段及层级相同。

在本发明实施例中,确定分桶存储黑名单的层级与目标分段之间的对应关系之后,将所述预置黑名单中的IP地址存储到与之对应层级中的目标分段的分桶中,以对所述预置黑名单进行分桶存储。在实际应用中,对于IP地址,所述分桶至少包含一个,至多包含2564-n,n为分桶存储的层级数。

可选的,所述步骤230,包括:

子步骤231,确定所述层级对应的至少一个目标分桶,以及每个所述目标分桶对应的分桶条件。

在本发明实施例中,所述层级可以对应有一个或多个目标分桶,例如:对于以a.b.c.d表示的IP地址,如果以IP地址的第四分段d分桶,则分桶条件不同,则得到的分桶结果不同。例如,若其中一个目标分桶的分桶条件为第四分段d的取值小于10,那么1.1.1.1、10.1.1.1会被分到该目标分桶中,桶编号可以为1;如果另一个目标分桶的分桶条件为第四分段d的取值大于等于10,那么那么1.1.1.10、2.1.1.10、2.1.2.10分至编号为2的目标分桶中。这两种情况下,该层级中包含有两个目标分桶。

所述分桶条件可以是针对不同目标分桶的取值范围及具体取值的限定,可以根据实际应用确定,当待存储的对象数目较少,则可以划分较少的分桶,从而根据目标分段对应的取值范围以及预先确定的目标分桶数确定分桶条件。例如,当待存储的对象数目较多,则此时需要划分较多的分桶例如5个(对象数目为1000个,每个分桶存储200个比较合适,此时可以设置5个分桶),目标分段的取值范围为0至255,则可以划分五个分桶,分桶条件分别为取值在0至50,51至100,101至150,151至200,201至255内。

子步骤232,对所述层级从高至低进行排序得到层级序列。

在本发明实施例中,所述层级的高低次序可以是根据预设配置确定的,可以通过预设配置确定某一层级作为第一层级,以此类推,最多可以存在四个层级,此处视第一层级为最高层级,以此类推,层数越大,层级越小。根据层级数的高低确定层级序列。高低层级在设定时需要考虑分桶数目,可以将分桶数目较多的放在高层层级,从而有利于在检索时提高查询速度,即根据第一层级可以排除掉大量分桶,选其中一个分桶,从而数据量骤减。

子步骤233,按照所述层级序列的顺序,根据每个层级对应的目标分段以及所述目标分桶对应的分桶条件,将所述对象存储至所述目标分桶。

可选的,所述预设黑名单为IP地址黑名单,所述对象包括IP地址和对应的过期时间,所述分段为IP地址分段。

在本发明实施例中,所述过期时间是相对应IP地址的时间点,是该IP地址在预置黑名单中的有效时间,当前时间在所述过期时间之前时,可确定预置黑名单中对应的IP地址有效,对其进行拦截;当前时间在所述过期时间之后时,可确定所述过期时间对应的IP地址无效,对其不进行拦截。

可以理解,对于同一层级,若该层级包括多个目标分桶,同一个目标分桶中存储的IP地址满足相同的分桶条件,不同目标分桶之间的IP地址满足不同的分桶条件。

可选的,所述子步骤233,包括:

子步骤2331,获取每个层级对应的候选对象。

在本发明实施例中,这里的候选对象与子步骤233中的对象不同,步骤233中的对象包含所有待存储的对象,这里的候选对象相对于每个层级而言。对于第一层级来说,所述候选对象是预置黑名单中的所有IP地址,从而第一层级的候选对象等价于子步骤233中的对象;对于除第一层级以外的其他层级来说,由于其他层级用于针对上一层级的分桶进行的进一步分桶,从而其他层级的候选对象为上一层级的其中一个分桶中存储的对象,以此类推,可以得到所有层级对应的候选对象。每个层级对应有不同的目标分段。

本领域技术人员可以理解,由于上一层级的不同分桶存储的对象数目不一定相同,从而该分桶的下一层级的候选对象数目不一定相同,但上一层级的所有分桶包含的对象总数目为待存储的候选对象总数目,即在不区分上一层级的分桶时,下一层级的候选对象总数目相同。

子步骤2332,从所述候选对象中提取目标分段的取值,所述目标分段与所述层级相对应。

在本发明实施例中,针对不同的层级,提取候选对象中与层级相对应的目标分段的取值。例如存在候选对象1.2.3.4,第一层级相对应的目标分段为第四段,则提取该候选对象第四段的取值4。

子步骤2333,若所述取值满足所述目标分桶对应的分桶条件,则将所述候选对象保存至所述目标分桶。

在本发明实施例中,当所述候选对象的目标分段的取值与该层级中某一目标分桶的所要求的分桶条件要求的取值相同时,将该候选对象存储到该层级的这个目标分桶中。

例如第一层级中包含有三个分桶,分别是编号1至3,对应的分桶条件分别是候选对象的第一分段的取值分别为1、3、5,针对某一候选对象5.2.9.3来说,就会被分到分桶条件为第一分段的取值为5的编号为3的目标分桶中。

可选的,所述子步骤2331,包括:

步骤2331A,若所述层级为所述层级序列中的第一个层级,则从所述预设黑名单中获取所述层级对应的候选对象。

在本发明实施例中,在开始对预设黑名单进行存储时,需要初次对所述预设黑名单进行划分和提取步骤。

步骤2331B,否则,从所述层级的上一层级对应的目标分桶中获取所述层级对应的候选对象。

在本发明实施例中,在进行第一层级或低层级的存储过程时,无需对预置黑名单重复进行划分和提取操作,由于层级之间的关系是嵌套的,除第一层级外的其他层级的候选对象是上一层级中目标分桶所存储的对象。此处仅需要获取已进行划分步骤后的上一层的目标分桶中的对象作为候选对象。

本发明实施例提供的一种黑名单存储方法,所述方法包括:针对预设黑名单中的每个对象,执行以下操作:将所述对象划分为至少一个分段;从所述分段中选取目标分段,并为所述目标分段确定层级;根据所述目标分段以及层级对所述对象进行分桶存储,其中每个分桶中各对象的目标分段及层级相同。确定所述层级对应的至少一个目标分桶,以及每个所述目标分桶对应的分桶条件;对所述层级从高至低进行排序得到层级序列;按照所述层级序列的顺序,根据每个层级对应的目标分段以及所述目标分获取每个层级对应的候选对象;根据所述候选对象提取目标分段的取值,所述目标分段与所述层级相对应;若所述取值满足所述目标分桶对应的分桶条件,则将所述候选对象保存至所述目标分桶。若所述层级为所述层级序列中的第一个层级,则从所述预设黑名单中获取所述层级对应的候选对象;否则,从所述层级的上一层级对应的目标分桶中获取所述层级对应的候选对象。本发明实施例通过将黑名单进行分桶存储,使得在将目标请求与黑名单进行匹配时,可通过目标分段在对应的目标分桶中进行查询,无需直接对黑名单的所有对象进行对比,提高了黑名单的匹配速度,在一定程度上避免了出现拦截超时的情况,进而提高了请求的拦截准确性。

图4示出本发明实施例提供的一种请求拦截方法,所述方法包括:

步骤310,捕获目标请求,并从所述目标请求中提取目标对象。

在本发明实施例中,所述请求拦截方法可以应用于服务器的防火墙,防火墙前置部署于服务器,防火墙存储有的结构化黑名单。所述防火墙对发送给所述服务器的目标请求进行检测过滤,当检测到所述目标请求时,提取所述业务请求中的目标对象例如IP地址,以供判别使用。在实际应用中还可以用其他方式进行过滤,通常使用IP作为判别是否需要被拦截的依据,也可以针对不同的网络,将其他网络特有的地址或身份识别标识作为是判别的依据,此处可以理解,只要是可用于识别外部设备的标识信息均可。

未检测到所述业务请求时,保持对所述服务器接收的数据进行监控的状态。所述目标请求用于外部设备从所述服务器获取服务,所述目标请求可以包括外部设备的IP地址,即目标对象。

步骤320,从所述目标对象中提取目标分段。

在本发明实施例中,当目标对象为IP地址时,服务器中的防火墙将目标请求的IP地址进行划分分段,至少将所述IP地址划分为一个分段,至多为四个分段。从所述目标分段中根据预设配置提取目标分段。所述预设配置是操作人员根据实际需要和操作习惯配置的静态规则或者动态规则。所述静态规则是每个目标分段对应有固定的层级,所述动态规则是根据设置变量动态调节目标分段与层级之间的映射关系,所述变量可以是时间段、IP地址归属地类型等。

步骤330,根据所述目标分段确定对应的目标分桶。

在本发明实施例中,防火墙在结构化黑名单中选取目标分段满足的分桶条件,并将该分桶条件对应的分桶确定为目标分桶,当目标分段存在一个时,仅从该目标分段对应的层级所包含的多个分桶中选取目标分桶,该目标分段的取值满足该目标分桶的分桶条件;当目标分段存在多个时,首先,首先从第一层级所包含的分桶中,选取第一层级对应的目标分段的取值符合其分桶条件的分桶,得到第一层级的目标分桶;然后,基于第一层级的目标分桶,从第二层级包含的分桶中,选取第二层级对应的目标分段的取值满足其分桶条件的分桶得到第二层级的目标分桶,其中,所述第二层级的目标分桶为所述第一层级的目标分桶的子分桶,而不是第一层级的所有分桶。

步骤340,在所述目标分桶中匹配所述目标对象。

在本发明实施例中,防火墙将目标请求的IP的目标分段的取值在步骤330确定的目标分桶中进行匹配。例如,当目标对象为IP地址时,将目标IP地址与目标分桶中的所有IP地址进行对比,当与其中一个IP地址相同时,匹配成功;若与目标分桶中所有IP地址均不相同,则匹配失败。

步骤350,若匹配成功,则拦截所述目标请求。

在本发明实施例中,若匹配成功,则表示发起该目标请求的外部设备在黑名单内,所述防火墙对所述目标请求进行拦截,停止所述目标请求的进一步处理;若匹配失败,则表示发起该目标请求的外部设备不在黑名单内,所述防火墙放行所述目标请求。

本发明实施例提供一种请求拦截方法,所述方法包括:捕获目标请求,并从所述目标请求中提取目标对象;从所述目标对象中提取目标分段;根据所述目标分段确定对应的目标分桶;在所述目标分桶中匹配所述目标对象;若匹配成功,则拦截所述目标请求。本发明实施例通过将黑名单进行分桶存储,使得在将目标请求与黑名单进行匹配时,可通过目标分段在对应的目标分桶中进行查询,无需直接对黑名单的所有对象进行对比,提高了黑名单的匹配速度,在一定程度上避免了出现拦截超时的情况,进而提高了请求的拦截准确性。

参照图5示出本发明实施例提供的另一种请求拦截方法,所述方法可以包括:

步骤410,捕获目标请求,并从所述目标请求中提取目标对象。

该步骤可以参照步骤310的详细说明,在此不再赘述。

步骤420,从所述目标对象中提取目标分段。

该步骤可以参照步骤320的详细说明,在此不再赘述。

步骤430,根据所述目标分段确定对应的目标分桶。

可选的,所述步骤430,包括:

子步骤431,确定所述目标分段对应的层级。

在本发明实施例中,所述目标分段根据预设配置对应有唯一的层级,该层级包含有所述目标分段对应的多个目标分桶。

子步骤432,若所述层级为最低层级,则获取所述层级对应的至少一个目标分桶,以及所述目标分桶对应的分桶条件。

在本发明实施例中,当所述目标分段对应的层级为最低层级时,提取该层级的中的所有目标分桶及对应分桶条件,所述分桶条件可以是所述目标分桶对IP地址的取值要求。

可以理解,在存储时,对于每个分桶,除了存储的该分桶中的对象之外,还需要存储该分桶的属性信息,包括但不限于:分桶对应的层级,层级对应的目标分段,分桶按照下一层级划分的子分桶等。

子步骤433,若所述目标分段满足其中一个目标分桶对应的分桶条件,则确定所述目标分桶为所述目标分段对应的目标分桶。

在本发明实施例中,当所述目标请求中的IP地址的目标分段的取值满足该层级中任一目标分桶对应的分桶条件时,则确定该目标分桶与所述IP地址相对应。当所述层级为最低层级时,最低层级的每个分桶中不再包含下一层及的子分桶,分桶中直接存了最终的匹配对象,所以此时可以直接在分桶中进行匹配。

步骤434,若所述层级不为最低层级,则确定所述层级的下一层级。

具体地,可以从分桶的属性信息中获取分桶按照下一层级划分的子分桶,如果存在子分桶,则该层级不为最低层级;如果不存在子分桶,则该层级为最低层级。

在本发明实施例中,当所述目标分段对应的层级不是最低层级时,顺次确定所述层级的下一层级,直到层级数为最低。由于除最低层级的其他层级分桶中存储的是下一层的分桶,因此需要确定下一层级的分桶,直至确定到最低层级,再进行匹配操作。

步骤435,若所述下一层级为最低层级,则从所述下一层级的目标分桶中选取所述目标分段对应的目标分桶。

在本发明实施例中,当所确定的层级为最低层级时,从该最低层级的目标分桶中提取与所述IP分段相匹配的目标分桶。该匹配关系是所述IP的目标分段的值满足所述目标分桶的分桶条件。

在实际应用中,分桶查询的层级可能为多个,在这里结合图2的存储结构,说明目标对象的查询过程,若图2中的OBJ1、OBJ2、OBJ3、OBJ4、OBJ5、OBJ6、OBJ7、OBJ8、OBJ9分别为IP地址1.1.1.1、1.1.2.2、1.1.3.3、1.1.2.4、1.1.1.4、1.1.8.1、1.1.9.2、1.1.7.4、1.1.6.5,若此时目标对象为IP地址1.1.9.2,则按照与存储时相同的分段将1.1.9.2划分为四个分段,并将第三分段和第四分段作为目标分段,由于第三分段取值9大于等于6且小于等于9,满足目标分桶BCK12的分桶条件COND12,从而确定IP地址1.1.9.2在目标分桶BCK12中;由于第三分段对应的层级不是最低层级,从还需要根据第四分段进一步确定目标分桶,由于第四分段的取值2大于等于1且小于等于3,满足目标分桶BCK121的分桶条件COND21,从而确定IP地址1.1.9.2在目标分桶BCK121的子分桶BCK121中,此时,可以将IP地址1.1.9.2与目标分桶BCK121中的每个对象进行对比,由于IP地址1.1.9.2与其中一个对象1.1.9.2相同,确定IP地址1.1.9.2在IP地址黑名单中。

步骤440,在所述目标分桶中匹配所述目标对象。

在本发明实施例中,在所述目标分段对应的目标分桶中包含的所有IP地址与所述目标请求中的IP地址进行匹配。

可选的,所述目标对象为目标IP地址,所述步骤440,可以包括:

子步骤441,从所述目标分桶提取每个对象,所述每个对象包括IP地址和对应的过期时间。

在本发明实施例中,所述目标分桶中的每个对象以MAP形式存储,其中KEY为IP的目标分段的值,VALUE为该IP对应的过期时间。

子步骤442,确定所述目标IP地址是否为所述IP地址,以及当前时间是否小于所述过期时间。

在本发明实施例中,在确认所述目标分桶对应的所有对象中存在与所述目标请求的IP地址相匹配的对象后,提取所述对象中的过期时间,将所述过期时间与当前的时间进行对比,判断当前时间是否小于所述过期时间。

子步骤443,若所述目标IP地址为所述IP地址,且当前时间小于所述过期时间,则匹配成功。

在本发明实施例中,当所述目标分桶中存在与所述IP地址相同的目标IP地址时,并且所述目标IP对应的过期时间小于当前时间时,则确认所述结构化黑名单中存在所述IP地址,匹配成功。

步骤450,若匹配成功,则拦截所述目标请求。

在本发明实施例中,在匹配成功的情况下,防火墙对所述IP地址对应的目标请求进行拦截处理。

当所述目标分桶中不存在与所述IP地址相同的目标IP地址时或所述目标IP对应的过期时间不小于当前时间时,确认所述结构化黑名单中不存在所述IP地址,匹配不成功,所述防火墙放行所述目标请求。

本发明实施例提供一种请求拦截方法,所述方法包括:捕获目标请求,并从所述目标请求中提取目标对象;从所述目标对象中提取目标分段;根据所述目标分段确定对应的目标分桶;在所述目标分桶中匹配所述目标对象;若匹配成功,则拦截所述目标请求。通过逐段逐层级对请求中的IP地址进行查询,无需直接对所有黑名单IP进行遍历,提高了黑名单查询的效率和准确性。

图6示出本发明实施例提供的一种黑名单存储装置50,所述装置包括:

所述装置针对预设黑名单中的每个对象,包括:

划分模块510,用于将所述对象划分为至少一个分段;

选取模块520,用于从所述分段中选取目标分段,并为所述目标分段确定层级;

存储模块530,用于根据所述目标分段以及层级对所述对象进行分桶存储,其中每个分桶中各对象的目标分段及层级相同。

可选的,所述存储模块530,包括:

确定子模块531,用于确定所述层级对应的至少一个目标分桶,以及每个所述目标分桶对应的分桶条件;

排序子模块532,用于对所述层级从高至低进行排序得到层级序列;

存储子模块533,用于按照所述层级序列的顺序,根据每个层级对应的目标分段以及所述目标分桶对应的分桶条件,将所述对象存储至所述目标分桶。

可选的,所述根据存储子模块533,包括:

获取单元5331,用于获取每个层级对应的候选对象;

提取单元5332,用于从所述候选对象中提取目标分段的取值,所述目标分段与所述层级相对应;

存储单元5333,用于若所述取值满足所述目标分桶对应的分桶条件,则将所述候选对象保存至所述目标分桶。

可选的,所述获取单元5331,包括:

第一获取子单元5331A,用于若所述层级为所述层级序列中的第一个层级,则从所述预设黑名单中获取所述层级对应的候选对象;

第二获取子单元5331B,用于否则,从所述层级的上一层级对应的目标分桶中获取所述层级对应的候选对象。

可选的,所述预设黑名单为IP地址黑名单,所述对象包括IP地址和对应的过期时间,所述分段为IP地址分段。

本发明实施例提供一种黑名单存储装置,所述装置包括:所述装置针对预设黑名单中的每个对象,包括:划分模块,用于将所述对象划分为至少一个分段;选取模块,用于从所述分段中选取目标分段,并为所述目标分段确定层级;存储模块,用于根据所述目标分段以及层级对所述对象进行分桶存储,其中每个分桶中各对象的目标分段及层级相同。本发明实施例通过将黑名单进行分桶存储,使得在将目标请求与黑名单进行匹配时,可通过目标分段在对应的目标分桶中进行查询,无需直接对黑名单的所有对象进行对比,提高了黑名单的匹配速度,在一定程度上避免了出现拦截超时的情况,进而提高了请求的拦截准确性。

图7示出本发明实施例提供的一种请求拦截装置60,所述装置包括:

捕获模块610,用于捕获目标请求,并从所述目标请求中提取目标对象;

提取模块620,用于从所述目标对象中提取目标分段;

确定模块630,用于根据所述目标分段确定对应的目标分桶;

匹配模块640,用于在所述目标分桶中匹配所述目标对象;

拦截模块650,用于若匹配成功,则拦截所述目标请求。

可选的,所述确定模块630,包括:

第一层级确定子模块631,用于确定所述目标分段对应的层级;

获取子模块632,用于若所述层级为最低层级,则获取所述层级对应的至少一个目标分桶,以及所述目标分桶对应的分桶条件;

第一确定子模块633,用于若所述目标分段满足其中一个目标分桶对应的分桶条件,则确定所述目标分桶为所述目标分段对应的目标分桶。

可选的,所述确定模块630还包括:

第二层级确定子模块634,用于若所述层级不为最低层级,则确定所述层级的下一层级;

第二确定子模块635,用于若所述下一层级为最低层级,则从所述下一层级的目标分桶中选取所述目标分段对应的目标分桶。

可选的,所述目标对象为目标IP地址,所述匹配模块640,包括:

提取子模块641,用于从所述目标分桶提取每个对象,所述每个对象包括IP地址和对应的过期时间;

验证子模块642,用于确定所述目标IP地址是否为所述IP地址,以及当前时间是否小于所述过期时间;

匹配子模块643,用于若所述目标IP地址为所述IP地址,且当前时间小于所述过期时间,则匹配成功。

本发明实施例提供一种请求拦截装置,所述装置包括:捕获模块,用于捕获目标请求,并从所述目标请求中提取目标对象;提取模块,用于从所述目标对象中提取目标分段;确定模块,用于根据所述目标分段确定对应的目标分桶;匹配模块,用于在所述目标分桶中匹配所述目标对象;拦截模块,用于若匹配成功,则拦截所述目标请求。本发明实施例通过将黑名单进行分桶存储,使得在将目标请求与黑名单进行匹配时,可通过目标分段在对应的目标分桶中进行查询,无需直接对黑名单的所有对象进行对比,提高了黑名单的匹配速度,在一定程度上避免了出现拦截超时的情况,进而提高了请求的拦截准确性。

本发明实施例还提供一种终端,包括处理器,存储器,存储在存储器上并可在处理上运行的计算机程序,该计算机程序被处理器执行时实现上述请求处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。

本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述请求处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,可以为只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域技术人员易于想到的是:上述各个实施例的任意组合应用都是可行的,故上述各个实施例之间的任意组合都是本发明的实施方案,但是由于篇幅限制,本说明书在此就不一一详述了。

在此提供的请求处理方法不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造具有本发明方案的系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的请求处理方法中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者系统程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干系统的单元权利要求中,这些系统中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1