统一资源定位符处理方法、装置、服务器及可读存储介质与流程

文档序号:16919675发布日期:2019-02-19 19:15阅读:193来源:国知局
统一资源定位符处理方法、装置、服务器及可读存储介质与流程

本说明书实施例涉及数据处理技术领域,尤其涉及一种统一资源定位符处理方法、装置、服务器及可读存储介质。



背景技术:

为了更好地保护web系统免受外部的入侵和攻击,需要对web系统做一些安全扫描和漏洞检测。在对web系统进行扫描时,为了提高扫描效率,避免对重复目标的扫描,需要先对扫描目标地址进行去重。因此,需要提供一种对扫描目标地址进行去重的方案。



技术实现要素:

本说明书实施例提供了一种统一资源定位符处理方法、装置、服务器及可读存储介质。

第一方面,本说明书实施例提供了一种统一资源定位符处理方法,包括:将待处理的统一资源定位符url数据中每个目标url的路径部分划分为一个或多个字段,并确定每个所述字段的段级别以及所述目标url的深度,其中,所述段级别为各个字段在所述目标url中的出现顺序,所述深度为所述目标url的字段个数;获取预设特征相同的各目标url中,每个段级别对应的字段内容,其中,所述预设特征包括:所述目标url对应的请求方法、域名以及所述深度;统计所述预设特征相同的各目标url中对应于同一段级别的不同所述字段内容的数量,当统计结果满足预设条件时,则基于该段级别对应的字段确定相应目标url中路径部分的目标动态段;根据所述目标动态段,对所述待处理的url数据进行去重处理。

第二方面,本说明书实施例提供了一种统一资源定位符处理装置,包括:切分模块、获取模块、确定模块和去重模块。切分模块,用于将待处理的统一资源定位符url数据中每个目标url的路径部分划分为一个或多个字段,并确定每个所述字段的段级别以及所述目标url的深度,其中,所述段级别为各个字段在所述目标url中的出现顺序,所述深度为所述目标url的字段个数;获取模块,用于获取预设特征相同的各目标url中,每个段级别对应的字段内容,其中,所述预设特征包括:所述目标url对应的请求方法、域名以及所述深度;确定模块,用于统计所述预设特征相同的各目标url中对应于同一段级别的不同所述字段内容的数量,当统计结果满足预设条件时,则基于该段级别对应的字段确定相应目标url中路径部分的目标动态段;去重模块,用于根据所述目标动态段,对所述待处理的url数据进行去重处理。

第三方面,本说明书实施例提供了一种服务器,包括:存储器;一个或多个处理器;及上述的统一资源定位符处理装置,存储于所述存储器中并被配置成由一个或多个处理器执行。

第四方面,本说明书实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述统一资源定位符处理方法的步骤。

本说明书实施例有益效果如下:

本说明书实施例提供的统一资源定位符处理方法,通过将目标url的路径部分进划分为一个或多个字段,并确定每个字段的段级别以及该目标url的深度,然后统计同请求方法、同域名以及同深度的各目标url中,对应于同一段级别的不同字段内容的数量,当统计结果满足预设条件时,则基于该段级别对应的字段确定相应目标url中路径部分的目标动态段。最后,再基于所识别出的目标动态段,对待处理的url数据进行去重处理。这样有利于避免路径部分所包含的目标动态段对后续去重处理的影响,从而提高url去重的准确性。

附图说明

图1为本说明书实施例的一种运行环境示意图;

图2为本说明书实施例第一方面提供的统一资源定位符处理方法流程图;

图3为本说明书实施例第一方面提供的示例性目标url列表的树形结构示意图;

图4为本说明书实施例第一方面提供的一种预泛化步骤的流程图;

图5为本说明书实施例第二方面提供的统一资源定位符处理装置结构示意图;

图6为本说明书实施例第三方面提供的服务器结构示意图。

具体实施方式

为了更好的理解上述技术方案,下面通过附图以及具体实施例对本说明书实施例的技术方案做详细的说明,应当理解本说明书实施例以及实施例中的具体特征是对本说明书实施例技术方案的详细的说明,而不是对本说明书技术方案的限定,在不冲突的情况下,本说明书实施例以及实施例中的技术特征可以相互组合。

本说明书实施例中,url(uniformresourcelocator,统一资源定位符),也被称为网页地址,是因特网上标准的资源的地址,由协议、域名、路径(path)、参数等部分组成。其中,路径部分接在url的域名部分之后,由/分隔,用于定位文件或功能代码,参数部分接在url的路径部分之后,由?分隔。动态url:在路径部分中有部分为参数值。泛化是指将同一功能url中的参数段转换为预设的统一标识符。

请参见图1,为适用于本说明书实施例的一种运行环境示意图。如图1所示,一个或多个用户端100可通过网络200与一个或多个网站服务器300(图1中仅示出一个)相连,以进行数据通信或交互。网站服务器300监听来自网络200的网页访问请求,根据网页访问请求完成相应的数据处理,并返回结果网页或者其他格式的数据给用户端100。其中,用户端100可以是个人电脑(personalcomputer,pc)、笔记本电脑、平板电脑、智能手机、电子阅读器、车载设备、网络电视、可穿戴设备等具有网络功能的智能设备。

第一方面,本说明书实施例提供了一种统一资源定位符处理方法。请参见图2,该方法包括步骤s201-步骤s204。其中,步骤s201至步骤s203是对目标url中路径部分所包含的动态段即参数段进行识别的过程,以避免越来越多的url模式设计中,将参数值放在路径部分影响后续url去重的准确性,步骤s204是基于识别出的目标动态段,对待处理的url数据进行去重的过程。下面将具体对各个步骤进行描述。

步骤s201,将待处理的统一资源定位符url数据中每个目标url的路径部分划分为一个或多个字段,并确定每个所述字段的段级别以及所述目标url的深度。

应理解的是,为了方便对url数据进行后续处理,在执行步骤s201之前,需要先对待处理的url数据进行规范化处理。本说明书实施例中,规范化处理过程具体可以包括:去除url中的空参数值、去除url中多余的“/”以及将整个url中的字母转化为大写或小写等。

本说明书实施例中,段级别为目标url中各个字段的出现顺序,深度为目标url的字段个数。例如,目标url为:http://www.example.com/a/b/c?pa=1&pb=2&pc=3,经过规范化处理后,假设将整个url的字母均转化为了小写,则表示为:http://www.example.com/a/b/c?pa=1&pb=2&pc=3,其中,域名为:www.example.com,路径部分为/a/b/c,若按照斜杠“/”对路径部分进行切分,就可以得到三个字段,分别为:a、b和c,则该目标url的深度为3。其中,字段a的出现顺序为1,字段b的出现顺序为2,字段c的出现顺序为3,则相应地,字段a的段级别为1,字段b的段级别为2,字段c的段级别为3。

于本说明书一实施例中,在执行步骤s201之前,所述方法还可以包括预筛选步骤,用于筛选出待处理的url数据中,为动态url的概率较大的url作为目标url,进行后续泛化步骤,以提高泛化效率。具体来讲,预筛选步骤可以包括:从网站访问数据中获取待处理的url数据;获取待处理url的域名,统计各个所述域名下出现url的数量;筛选出现url的数量大于预设数量阈值的域名作为目标域名,将所述目标域名下的待处理url作为所述目标url。其中,预设数量阈值根据实际应用场景设置,例如,可以根据实际所获取的待处理的url数量、web系统的域名数量以及各域名下的路径个数分布等因素设置。

应理解的是,各个域名下出现url的数量即为各个域名下的不同路径数量,数量越多,则这些域名下存在动态url的概率较大,因此筛选出这些域名下的url进行后续泛化,有利于提高泛化效率。

具体来讲,获取待处理的url数据主要可以采用两种方法:第一种,通过网络爬虫获取网站服务器中的url数据,第二种,从网页访问的web日志中得到待处理的url数据。

当然,在本说明书的其他实施例中,也可以将所获取的待处理的url数据均作为目标url。

另外,作为一种可选的实施例,由于当某些静态路径字段表示的功能访问量确实非常小的情况下,很有可能会被相同段级别下的其他动态字段影响,导致被误泛化。因此,为了对此类情况做修正,可以引入一个监控机制。该监控机制可以在上述预筛选步骤中的获取待处理url的域名,统计各个域名出现url的数量之前执行,具体执行过程包括:将每个待处理url与预先设置的白名单进行匹配,所述白名单包括多个url;对于匹配失败的待处理url,执行所述获取待处理url的域名,统计各个所述域名下出现url的数量的步骤。

其中,白名单包括多个url。白名单中的url可以通过对网站访问数据中的各url进行监控得到。由于绝大部分的动态url,在最近1-2天的访问之后,则不会再次出现。因此,可以监控各url每日出现的情况,如果在q天内,出现天数超过t天,则将该url加入白名单,不再对该url做后续泛化。其中,q和t均根据实际应用场景设置,例如,q可以设置为5,t可以设置为2。

进一步地,为了保证上述白名单的适用性,还可以对该白名单进行实时动态更新。此时,本方法还包括:监控所述网站访问数据,获取在预设时间段内出现天数超过预设天数的url,将所获取的url加入所述白名单中。

步骤s202,获取预设特征相同的各目标url中,每个段级别对应的字段内容。

其中,预设特征包括:请求方法、域名以及url的深度。请求方法是指用户端向网站服务器发出的请求中,对资源的请求方法。例如,以http请求为例,请求方法包括:options、head、get、post、put、delete、trace和connect,其中,在实际应用中较常用的请求方法为get和post。

步骤s203,统计所述预设特征相同的各目标url中对应于同一段级别的不同所述字段内容的数量,当统计结果满足预设条件时,则基于该段级别对应的字段确定相应目标url中路径部分的目标动态段;

针对待处理的url数据中的所有目标url,查找其中具有相同请求方法、相同域名以及相同深度的目标url。假设对应于某请求方法、某域名以及某深度的目标url有m个,则每个段级别对应m个字段内容,分别为这m个目标url中的每个目标url在该段级别的字段内容。其中,m为正整数。针对具有相同请求方法、相同域名以及相同深度的目标url中,每个段级别对应的字段内容执行步骤s203。

假设对应于某请求方法、某域名以及某深度的m个目标url的某一段级别对应的m个字段内容中,包括m1个字段a、m2个字段b以及m3个字段c,字段a、字段b和字段c为不同的字段内容,且m1+m2+m3=m,则对应于该段级别的不同字段内容的数量为3,即该段级别对应的统计结果为3。

本说明书实施例中,当统计结果满足预设条件时,则基于该段级别对应的字段确定相应目标url中路径部分的目标动态段的过程具体包括:判断所述统计结果是否大于第一预设阈值,若是,则基于该段级别对应的字段确定相应目标url中路径部分的目标动态段。当然,在本说明书的其他实施例中,也可以根据需要设置其他的预设条件。

具体来讲,在上述过程中,需要统计所有同请求方法、同域名、同深度的目标url中,对应于同一段级别的不同字段内容的数量。例如,共有10000个目标url,其中同请求方法、同域名、同深度的目标url有500组,同一组目标url的请求方法、域名以及深度均相同,不同组目标url的请求方法、域名和深度中的其中一种或多种不同。需要说明的是,需要对每组目标url的每个段级别的不同字段内容的数量进行统计,然后针对每组目标url,将每个段级别的不同字段内容的数量与第一预设阈值进行比较,若某组目标url中的某个段级别的不同字段内容的数量大于第一预设阈值,则基于该段级别对应的字段确定该组目标url中路径部分包含的目标动态段。

假设其中一组同请求方法、同域名、同深度的目标url列表如下:

http://www.example.com/node0/node1/param0/node4

http://www.example.com/node0/node1/param1/node4

http://www.example.com/node0/node1/.../node4

http://www.example.com/node0/node1/paramn/node4

http://www.example.com/node0/node2/node3/node5

http://www.example.com/node0/node2/node3/node6

这些目标url的路径部分可以近似看成一颗树,其中树形结构及各描述性特征如图3所示。这些目标url的深度均为4,其中,段级别为1的节点个数为1个,即该段级别不同字段个数为1;段级别为2的节点个数共有两个,即该段级别不同字段内容的数量为2,分别为node1和node2;段级别为3的节点个数共有n+2个,即该段级别不同字段内容的数量为n+2,分别为param0、param1、…、paramn和node3,其中,n为大于1的正整数;段级别为4的节点个数共有3个,即该段级别不同字段内容的数量为3,分别为node4、node5和node6。

具体地,第一预设阈值可以根据实际应用场景设置。例如,若第一预设阈值设置为100,且n+2大于100,则基于这些目标url中,段级别3对应的字段确定该组目标url中路径部分包含的目标动态段。段级别3对应的字段包括:2个param0、1个param1、…、1个paramn和200个node3。

作为一种可选的方式,上述基于该段级别对应的字段确定相应目标url中路径部分的目标动态段可以具体包括:将上述统计结果大于第一预设阈值的段级别对应的目标url中,该段级别对应的字段均作为相应目标url中路径部分包含的目标动态段。也就是说,将上述示例中,段级别3对应的字段均作为该组目标url中路径部分包含的目标动态段。

当然,为了进一步减小对路径部分包含的目标动态段的识别误差,提高后续去重的准确性,作为另一种可选方式,上述基于该段级别对应的字段确定相应目标url中路径部分的目标动态段可以具体包括:将该段级别对应的字段标记为参考动态段;获取所述参考动态段的段请求量,将所述段请求量满足预设请求量条件的参考动态段确定为所述目标动态段。本说明书实施例中,段请求量为各字段在预设特征相同即同请求方法、同域名、同深度的各目标url的同一段级别下出现的次数。也就是说,参考动态段的段请求量为该参考动态段在相应的同请求方法、同域名、同深度的各目标url中的同一段级别出现的次数。

例如,如图3所示,字段node0的段请求量即访问次数为1000,字段node1的段请求量为800,字段node2的段请求量为200,字段param0至paramn的段请求量均在1-5之间,且字段param0至paramn的段请求量之和为800,字段node3的段请求量为200,字段node4的段请求量为800,字段node5的段请求量为150,字段node6的段请求量为50。

具体来讲,上述预设请求量条件可以根据实际应用场景设置。例如,可以预先根据实际场景设置为一个请求量阈值,若参考动态段的段请求量小于该请求量阈值,则满足预设请求量条件。

本说明书实施例中,作为一种可选方式,上述将所述段请求量满足预设请求量条件的参考动态段确定为所述目标动态段的过程具体可以包括:获取所述参考动态段所在的目标url的最大段请求量;将所述段请求量在所述最大段请求量中的占比小于或等于第二预设阈值的参考动态段确定为所述目标动态段。

具体来讲,获取所述参考动态段所在的目标url的最大段请求量包括:判断所述参考动态段所在的目标url中各个字段是否均被标记为参考动态段;若是,则将该目标url的域名下,相同请求方法以及相同所述深度的目标url的数量作为该目标url的最大段请求量;若否,则将该目标url的各个字段的段请求量中最大的数值,作为该目标url的最大段请求量。

需要说明的是,在本说明书实施例中,可以在标记完参考动态段之后,直接先采用上述最大段请求量获取方式得到每个被标记有参考动态段的目标url的最大段请求量,以便于后续可以根据需要获取相应目标url的最大段请求量。

具体来讲,在上述确定目标动态段的过程中,可以对各个目标url的各字段进行轮询,判断是否为参考动态段,若是,则计算该参考动态段的段请求量在该参考动态段所在的目标url的最大段请求量中的占比,将该占比与第二预设阈值进行比较,若该占比小于或等于第二预设阈值,则将该参考动态段确定为目标动态段。其中,第二预设阈值可以根据实际应用场景设置,具体可以根据同请求方法、同域名以及同深度的目标url中,统计结果满足预设条件的段级别对应的不同字段个数设置。例如,在图3所示的示例中,第二预设阈值可以设置为1%。

应理解的是,参考动态段中可能会存在受同级别的其他动态字段影响而被误标记的静态字段。由于同请求方法、同域名以及同深度的目标url中,各段级别的段请求量之和是一定的,如图3所示,各段级别所包含的节点的段请求量之和均为1000,因此,对于同请求方法、同域名以及同深度的目标url中,被标记为参考动态段的同一段级别,相对来讲,动态字段的段请求量是远远低于静态字段的段请求量的,当然,动态字段的段请求量在相应的最大段请求量中的占比也远远小于静态字段的段请求量在相应的最大段请求量中的占比。

由此,为了进一步减小路径部分包含的目标动态段的识别误差,且避免目标url的访问次数对目标动态字段判定结果的影响,本发明实施例通过设置占比阈值即上述的第二预设阈值,将参考动态段的段请求量在相应最大段请求量中的占比与第二预设阈值进行比较,进一步识别出参考动态段中的动态字段和静态字段,将占比小于或等于第二预设阈值的参考动态段确认为目标动态段,即为路径部分的参数段,将占比大于第二预设阈值的参考动态段确认为静态字段,即为路径部分的固定路径段。

例如,在图3所示的示例中,仅段级别3对应的字段param0、param1、…、paramn以及node3被标记为参考动态段。其中,字段param0的段请求量为2,param1的段请求量为1,…,paramn的段请求量为1,node3的段请求量为200。显然,字段param0、param1、…、paramn以及node3所在目标url的最大段请求量均为字段node0的段请求量,即最大段请求量为1000。若上述第二预设阈值设置为1%,则param0、param1、…、paramn均被确认为目标动态段,而参考动态段node3则为静态字段。

另外,需要说明的是,在实际应用中,通过对url的路径部分的寻址原理进行分析后,发现绝大部分系统的寻址逻辑为:优先查找固定字符串,如无匹配的固定字符串,则按值类型匹配路由表中注册的参数,优先匹配数值型参数,如无整数型参数的注册,则匹配字符串类参数。因此,可以将包含参数段的路径部分的各段分为三类:固定路径段、数值型参数段以及字符串型参数段。

其中,数字型参数段,有比较明显的特征,比较好识别,可以提前进行泛化。此外,对于字符串类参数段中存在的诸如日期之类的,特征比较强的字符串类型,也可以提前进行泛化。因此,为了提高泛化过程的效率,作为一种可选的实施例,在执行上述步骤s202之前,本说明书实施例还可以包括预泛化步骤,预先对目标url的路径部分中比较好识别的字段进行初步泛化,然后对于经过预泛化步骤处理后的路径部分再执行步骤s202,继续识别比较难以区分的字符串类参数段,所识别出的目标动态段即为字符串类参数段。具体来讲,预泛化步骤包括以下步骤s401和/或步骤s402。

步骤s401,判断所述每个目标url的每个字段是否符合预设的数字类型特征,若是,将该字段泛化为预设的第一标识符。

需要说明的是,通过匹配预设的数字类型特征能够识别出全部字符均为数字的字段。也就是说,若某字段符合预设的数字类型特征,则表示该字段所包括的全部字符均为数字,为数值型参数段,如“123”。此时,则将该字段替换为预设的第一标识符。具体地,第一标识符可以根据需要设置,例如可以设置为{num}或者是其他统一的标识符。

步骤s402,判断所述每个目标url的每个字段是否符合预设的日期类型特征,若是,将该字段泛化为预设的第二标识符。

具体来讲,预设的日期类型特征可以包括预置的多种时间格式规则,如:20xx-xx-xx等。将每个目标url的每个字段与预置的多种时间格式规则进行匹配,当匹配成功时,则表示该字段为日期参数段,如“2018-08-14”。此时,则将该字段替换为预设的第二标识符。具体地,第二标识符可以根据需要设置,例如可以设置为{dt}或者是其他统一的标识符。需要说明的是,第二标识符可以设置为与第一标识符不同,也可以设置为与第一标识符相同。

需要说明的是,除了日期以外,上述预处理步骤也可以包括对字符串类参数段中存在的其他特征比较强的字符串类型字段提前进行泛化的步骤。当预泛化步骤包括步骤s401和步骤s402时,可以按照图4所示的步骤执行,也可以按照不同于图4的步骤执行,如步骤s402可以在步骤s401之前执行,或是与步骤s401基本同时执行。当然,在本说明书的其他实施例中,也可以不经过上述预泛化步骤,直接通过执行步骤s202和步骤s203对目标url中路径部分的目标动态段即参数段进行识别。

步骤s204,根据所述目标动态段,对所述待处理的url数据进行去重处理。

具体来讲,上述根据所述目标动态段,对所述待处理的url数据进行去重处理可以包括:将所述目标动态段泛化为预设的第三标识符;获取所述待处理的url数据中,每个url对应的参数名称,并对所述每个url对应的参数名称进行排序;基于经过所述泛化处理后,每个url的域名、请求方法、路径部分以及排序后的参数名称,去除所述待处理的url数据中重复的统一资源定位符。

其中,第三标识符可以根据实际需要设置,例如,可以设置为{str}或者是其他统一的标识符。需要说明的是,本说明书实施例中,第三标识符可以设置为与上述的第一标识符和/或第二标识符相同,也可以设置为不同。

例如,对于图3所述的示例对应的目标url,对上述步骤s202识别出目标动态段进行泛化处理后,得到的目标url列表为:

http://www.example.com/node0/node1/{str}/node4

http://www.example.com/node0/node2/node3/node5

http://www.example.com/node0/node2/node3/node6

需要说明的是,在本步骤中,需要对所有待处理的url数据进行去重,包括存在有目标动态段的目标url和其他不存在目标动态段的url数据。因此,需要获取待处理的url数据中,每个url对应的参数名称,并对所述每个url对应的参数名称进行排序。具体地,url对应的参数名称包括url中参数部分包含的参数名称。另外,对于请求体中也包含参数部分的请求url,url对应的参数名称还包括请求体中的参数名称,如post请求的url。相应地,对每个url对应的参数名称进行排序时,也分别按照url中参数部分包含的参数名称以及postbody中的参数名称进行排序。具体可以按照参数名称字母由大到小的顺序排序,也可以按照参数名称字母由小到大的顺序排序。

例如,某url为http://www.example.com/a/b/c?pa=1&pb=2&pc=3,url中参数部分包含的参数名称分别为:pa、pb和pc,若该url属于请求体中不包含参数部分的请求,对该url对应的参数名称由小到大进行排序后的参数名称组合为:papbpc。若该url属于请求体中包含参数部分的请求,且请求体中包含的参数名称分别为:pd和pe,则对该url对应的参数名称由小到大进行排序后的参数名称组合为:papbpc以及pdpe,其中,papbpc对应于该url中参数部分包含的参数名称排序后的组合,pdpe对应于该url对应的请求体中参数部分包含的参数名称排序后的组合。

需要说明的是,本说明书实施例中对获取待处理的url数据中,每个url对应的参数名称,并对所述每个url对应的参数名称进行排序的步骤的执行顺序可以不做限定,例如,该步骤也可以在上述步骤s201之前执行。

具体来讲,基于经过所述泛化处理后,需要进一步去除待处理的url数据中域名、请求方法、路径部分以及排序后的参数名称一致的重复url,即对应于域名相同、请求方法相同、路径部分相同以及排序后的参数名称相同的多个url,仅保留其中一个。例如,若待处理的url数据中a1、a2、…、a200均表示对应于同一域名、同一请求方法、同一路径部分以及同一排序后的参数名称的url,则仅保留a1、a2、…、a200中的其中一个url。需要说明的是,待处理的url数据中,对于包含有目标动态段的目标url,去重时获取的路径部分为经过泛化后的路径部分,而对于没有被泛化的其他url,去重时获取的路径部分为经过规范化处理后的原有路径部分。

作为一种可选的方式,上述基于经过所述泛化处理后,每个url的域名、请求方法、路径部分以及排序后的参数名称,去除所述待处理的url数据中重复的url的过程可以包括:基于经过所述泛化处理后,每个url的域名、请求方法、路径部分以及排序后的参数名称,生成对应的特征字符串;基于所述特征字符串对所述待处理的url数据进行过滤,并对应每个所述特征字符串保留一个url。

应理解的是,待处理的url数据中,对于包含有目标动态段的目标url,生成对应特征字符串所用到的路径部分为经过泛化后的路径部分,而对于没有被泛化的其他url,生成对应特征字符串所用到的路径部分为经过规范化处理后的原有路径部分。例如,对于上述示例中的经过泛化后的目标url:http://www.example.com/node0/node1/{str}/node4,生成对应特征字符串所用到的路径部分为:/node0/node1/{str}/node4。

本说明书实施例中,可以将基于经过所述泛化处理后,每个url的域名、请求方法、路径部分以及排序后的参数名称,按照预先配置的组合方式进行组合,得到相应的特征字符串。例如,可以针对每个url,直接将域名、请求方法、路径以及排序后的参数名称依次拼接在一起,组成与该url对应的特征字符串,拼接顺序可以预先根据需要配置。

此时,基于所述特征字符串对所述待处理的url数据进行过滤,并对应每个所述特征字符串保留一个url的具体过程可以为:通过预设的hash函数计算每个url对应的特征字符串的hash值,按hash值进行去重,得到去重后的url。也就是说,若存在多个url对应于同一hash值,则仅保留其中一个url。

作为另一种可选的方式,也可以基于域名、请求方法、路径部分以及排序后的参数名称,采用uniquekey机制,去除重复的url。

另外,还需要说明的是,在本说明书的其他实施例中,上述去重过程也可以不将所识别出的目标动态段替换为预设的第三标识符,而是直接对所识别出的目标动态段进行标记,这样对于域名、请求方法、深度以及排序后的参数名称均相同,且在相同段级别被标记有目标动态段的多个url,若除了目标动态段以外,路径部分的其他字段均相同,则被认为是重复的url,仅保留这些url中的一个。

本说明书实施例提供的统一资源定位符处理方法,先统计同请求方法、同域名以及同深度的各目标url中,对应于同一段级别的不同字段内容的数量,当统计结果满足预设条件时,基于该段级别对应的字段确定相应目标url中路径部分的目标动态段,然后再基于所识别出的目标动态段,实现所有待处理的url数据的去重处理。这样有利于避免路径部分所包含的目标动态段对后续去重处理的影响,从而提高url去重的准确性。

第二方面,基于同一发明构思,本说明书实施例还提供了一种同一资源定位符处理装置,请参见图5,包括:

切分模块51,用于将待处理的统一资源定位符url数据中每个目标url的路径部分划分为一个或多个字段,并确定每个所述字段的段级别以及所述目标url的深度,其中,所述段级别为各个字段在所述目标url中的出现顺序,所述深度为所述目标url的字段个数;

获取模块52,用于获取预设特征相同的各目标url中,每个段级别对应的字段内容,其中,所述预设特征包括:所述目标url对应的请求方法、域名以及所述深度;

确定模块53,用于统计所述预设特征相同的各目标url中对应于同一段级别的不同所述字段内容的数量,当统计结果满足预设条件时,则基于该段级别对应的字段确定相应目标url中路径部分的目标动态段;

去重模块54,用于根据所述目标动态段,对所述待处理的url数据进行去重处理。

作为一种可选的实施方式,所述确定模块53包括:

判断子模块531,用于判断所述统计结果是否大于第一预设阈值;

确定子模块532,用于当所述判断子模块531判定所述统计结果大于第一预设阈值时,基于该段级别对应的字段确定相应目标url中路径部分的目标动态段。

作为一种可选的实施方式,所述确定子模块532具体用于:

将该段级别对应的字段标记为参考动态段;

获取所述参考动态段的段请求量,将所述段请求量满足预设请求量条件的参考动态段确定为所述目标动态段,其中,所述段请求量为各字段在所述预设特征相同的各目标url的同一段级别下出现的次数。

作为一种可选的实施方式,所述确定子模块532具体用于:

获取所述参考动态段所在的目标url的最大段请求量;

将所述段请求量在所述最大段请求量中的占比小于或等于第二预设阈值的参考动态段确定为所述目标动态段。

作为一种可选的实施方式,所述确定子模块532具体用于:

判断所述参考动态段所在的目标url中各个字段是否均被标记为参考动态段;

若是,则将该目标url的域名下,相同请求方法以及相同所述深度的目标url的数量作为所述最大段请求量;

若否,则将该目标url的各个字段的段请求量中最大的数值,作为所述最大段请求量。

作为一种可选的实施方式,本说明书实施例提供的统一资源定位符处理装置还包括:

第一泛化模块,用于判断所述每个目标url的每个字段是否符合预设的数字类型特征,若是,将该字段泛化为预设的第一标识符。

作为一种可选的实施方式,本说明书实施例提供的统一资源定位符处理装置还包括:

第二泛化模块,用于判断所述每个目标url的每个字段是否符合预设的日期类型特征,若是,将该字段泛化为预设的第二标识符。

作为一种可选的实施方式,本说明书实施例提供的统一资源定位符处理装置还包括:筛选模块,用于从网站访问数据中获取待处理的url数据;获取待处理url的域名,统计各个所述域名下出现url的数量;筛选出现url的数量大于预设数量阈值的域名作为目标域名,将所述目标域名下的待处理url作为所述目标url。

作为一种可选的实施方式,所述筛选模块还用于:将每个待处理url与预先设置的白名单进行匹配,所述白名单包括多个url;对于匹配失败的待处理url,执行所述获取待处理url的域名,统计各个所述域名下出现url的数量的步骤。

作为一种可选的实施方式,本说明书实施例提供的统一资源定位符处理装置还包括:监控模块,用于监控所述网站访问数据,获取在预设时间段内出现天数超过预设天数的url,将所获取的url加入所述白名单中。

作为一种可选的实施方式,所述去重模块54包括:

泛化子模块541,用于将所述目标动态段泛化为预设的第三标识符;

获取子模块542,用于获取所述待处理的url数据中,每个url对应的参数名称,并对所述每个url对应的参数名称进行排序;

去重子模块543,用于基于经过所述泛化处理后,每个url的域名、请求方法、路径部分以及排序后的参数名称,去除所述待处理的url数据中重复的url。

作为一种可选的实施方式,所述去重子模块543具体用于:

基于经过所述泛化处理后,每个url的域名、请求方法、路径部分以及排序后的参数名称,生成对应的特征字符串;

基于所述特征字符串对所述待处理的url数据进行过滤,并对应每个所述特征字符串保留一个url。

需要说明的是,本说明书实施例所提供的统一资源定位符处理装置,其中各个单元执行操作的具体方式已经在上述方法实施例中进行了详细描述,此处将不做详细阐述说明。

第三方面,基于与前述实施例中统一资源定位符处理方法同样的发明构思,本发明还提供一种服务器,包括存储器、一个或多个处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现前文所述统一资源定位符处理方法的步骤。

图6示出了一种可应用于本说明书实施例中的服务器的结构框图。如图6所示,服务器600包括:存储器601、处理器602以及网络模块603。

存储器601可用于存储软件程序以及模块,如本说明书实施例中的统一资源定位符处理方法及装置对应的程序指令/模块,处理器602通过运行存储在存储器601内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现本发明实施例中的统一资源定位符处理方法。存储器601可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。进一步地,上述存储器601内的软件程序以及模块还可包括:操作系统621以及服务模块622。其中操作系统621,例如可为linux、unix、windows,其可包括各种用于管理系统任务(例如内存管理、存储设备控制、电源管理等)的软件组件和/或驱动,并可与各种硬件或软件组件相互通讯,从而提供其他软件组件的运行环境。服务模块622运行在操作系统621的基础上,并通过操作系统621的网络服务监听来自网络的请求,根据请求完成相应的数据处理,并返回处理结果给用户端。也就是说,服务模块622用于向用户端提供网络服务。

网络模块603用于接收以及发送网络信号。上述网络信号可包括无线信号或者有线信号。

本说明书实施例中的服务器可以为web服务器、数据库服务器等。可以理解的是,图6所示的结构仅为示意,服务器600还可包括比图6中所示更多或者更少的组件,或者具有与图6所示不同的配置。图6中所示的各组件可以采用硬件、软件或其组合实现。另外,本发明实施例中的服务器还可以包括多个具体不同功能的服务器。

第四方面,基于与前述实施例中统一资源定位符处理方法的发明构思,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前文所述统一资源定位符处理方法的任一方法的步骤。

本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的设备。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令设备的制造品,该指令设备实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本说明书的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本说明书范围的所有变更和修改。

显然,本领域的技术人员可以对本说明书进行各种改动和变型而不脱离本说明书的精神和范围。这样,倘若本说明书的这些修改和变型属于本说明书权利要求及其等同技术的范围之内,则本说明书也意图包含这些改动和变型在内。

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