CN109726340A - 统一资源定位符分类的查询方法及装置 - Google Patents
统一资源定位符分类的查询方法及装置 Download PDFInfo
- Publication number
- CN109726340A CN109726340A CN201811569021.XA CN201811569021A CN109726340A CN 109726340 A CN109726340 A CN 109726340A CN 201811569021 A CN201811569021 A CN 201811569021A CN 109726340 A CN109726340 A CN 109726340A
- Authority
- CN
- China
- Prior art keywords
- url
- feature database
- value
- initial
- cryptographic hash
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本申请公开了一种统一资源定位符分类的查询方法及装置,该方法包括:加载初始URL特征库至内存,初始URL特征库中的URL为本地URL特征库中满足预设条件的URL,且数量小于第一预设数量;获取目标URL,并在初始URL特征库中进行查找,进而确定其对应的分类类型;当初始URL特征库中不包括目标URL时,在本地URL特征库中进行查找,并将查找结果加载至初始URL特征库。本申请中,加载至内存的是URL数量小于第一预设数量的初始URL特征库;而且,将无法通过初始URL特征库查询到的目标URL从本地URL特征库添加至初始URL特征库,从而在能够进行分类查询的同时,避免占用过多内存,提高了网络设备的运行效率。
Description
技术领域
本申请涉及计算机领域,特别涉及一种统一资源定位符分类的查询方法及装置。
背景技术
随着互联网业务的迅速发展,负责网络安全的网络设备应运而生,例如IP协议密码机、安全路由器、线路密码机等。互联网审计是网络安全的重要内容之一。实现互联网审计需要网络设备记录用户访问网址的统一资源定位符(Uniform Resource Locator,URL),并通过查询URL特征库确定用户访问的URL的分类类型。其中,URL特征库包括多个URL、各个URL的消息摘要算法(Message-Digest Algorithm,MD5)值、各个MD5值的哈希值、以及各个URL对应的分类类型。
在现有技术中,网络设备开启URL分类的查询功能时,将URL特征库整个加载到内存中,并计算库中各个URL的MD5值。每个MD5值代表一个URL。然后,网络设备再计算各个MD5值的哈希值。每个哈希值至少指向一个MD4值。当用户访问网页时,网络设备获取用户访问请求中的URL,例如HTTP请求中的URL,计算该URL的MD5值和哈希值。然后,网络设备在URL特征库中查找相同的哈希值,并遍历该哈希值指向的MD5值,以查找库中与访问请求中的URL相同的UPL,最终确认该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和所述目标URL对应的分类类型加载至所述初始URL特征库中。
可选地,所述在所述初始URL特征库中查找所述目标URL,包括:
根据所述目标URL,计算第一消息摘要算法MD5值,所述第一MD5值是指所述目标URL的MD5值;
根据所述第一MD5值前n位字符,计算第一哈希值;
查找所述初始URL特征库是否包括所述第一哈希值;
若所述初始URL特征库不包括所述第一哈希值,则确定所述初始URL特征库中不包括所述目标URL;
若所述初始URL特征库包括所述第一哈希值,则查找所述第一哈希值在所述初始URL特征库中对应的MD5值是否包括所述第一MD5值;
若所述第一哈希值在所述初始URL特征库中对应的MD5值包括所述第一MD5值,则确定所述初始URL特征库中包括所述目标URL;
若所述第一哈希值在所述初始URL特征库中对应的MD5值不包括所述第一MD5值,则确定所述初始URL特征库中不包括所述目标URL。
可选地,所述加载初始URL特征库至内存之前,还包括:
计算所述本地URL特征库中各个URL的MD5值;
根据所述各个URL的MD5值的前n位字符,计算所述各个URL的MD5值的哈希值;
生成查询文件,所述查询文件包括根据所述哈希值的大小排列的所述各个URL的MD5值;
生成索引文件,所述索引文件包括所述哈希值和所述哈希值对应的位置信息,所述位置信息用于指示一个哈希值对应的MD5值在所述查询文件中的位置。
可选地,所述在所述本地URL特征库查找中所述目标URL,包括:
获取所述索引文件中所述第一哈希值对应的位置信息;
根据所述位置信息,将所述查询文件中所述第一哈希值对应的MD5值加载至所述内存中;
检测所述第一哈希值对应的MD5值中是否包括所述第一MD5值;
若所述第一哈希值对应的MD5值中包括所述第一MD5值,则确定所述本地URL特征库中包括所述目标URL;
若所述第一哈希值对应的MD5值中不包括所述第一MD5值,则确定所述本地URL特征库中不包括所述目标URL。
可选地,所述加载初始URL特征库至内存之前,还包括:
计算所述本地URL特征库中各个URL的MD5值;
计算所述各个URL的MD5值的哈希数据,所述哈希数据包括根据MD5值每一位字符计算的k个完全哈希值,k为大于0的整数;
根据所述每个URL的MD5值的哈希数据,生成一个位数组,所述位数组用于表示所述各个URL的MD5值的哈希数据中的完全哈希值。
可选地,所述在所述初始URL特征库中查询所述目标URL之前,还包括:
根据所述目标URL,计算第一MD5值,所述第一MD5值是指所述目标URL的MD5值;
根据所述第一MD5值每一位字符,计算所述第一MD5值的哈希数据;
当所述第一MD5值的哈希数据中的k个完全哈希值均在所述位数组表示的完全哈希值中时,执行所述在所述初始URL特征库中查找所述目标URL的步骤;
当所述第一MD5值的哈希数据中的k个完全哈希值中任一完全哈希值不在所述位数组表示的完全哈希值中时,结束所述目标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时,在所述本地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是根据一示例性实施例示出的基于布隆过滤器的查询方法的流程图;
图4是根据一示例性实施例示出的位数组的示意图;
图5是根据一示例性实施例示出的一种统一资源定位符分类的查询装置的框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请实施例中的技术方案,并使本申请实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本申请实施例中的技术方案作进一步详细的说明。
在对本申请实施例的技术方案说明之前,首先结合附图对本申请实施例适用的网络架构进行说明。请参考图1,其示出了本申请实施例适用的网络架构的示意图。
该网络架构可以包括:终端101、网络设备102和服务器103。在本申请实施例中,终端101在访问网站时发送访问请求。该访问请求需要先经过网络设备102的审计,再到达相应网站的服务器103。网络设备102会查询访问请求中URL的分类类型,而URL的分类类型可以根据实际经验和应用场景预先进行设定。应用场景不同,URL的分类类型也不相同。例如,对于一个篮球网站的URL,与体育新闻相关的公司会在网络设备102的URL特征库中,将其分类类型设为“篮球”;而与金融相关的公司会将相同URL的分类类型设为“体育”。因此,本申请实施例中对URL的分类类型与分类方式不做具体限定。
终端101可以是支持网站访问功能的终端,例如手机、平板电脑,个人计算机(PersonalComputer,PC)等。服务器103是终端101所访问的网站对应的网站服务器。服务器103可以是单个服务器,也可以是多个服务器组成的服务器集群。网络设备102是为终端101提供网络安全服务的设备,例如安全路由器、网关等。一个网络设备102可以负责多个终端101的URL分类查询。
图2是根据一示例性实施例示出的一种统一资源定位符分类的查询方法的流程图,该方法可以包括如下几个步骤:
步骤201,加载初始URL特征库至内存。
网络设备在开启URL分类的查询功能后,需要将磁盘中存储的UPL特征库加载到内存中,以供查询时使用。在本申请实施例中,将网络设备的磁盘中存储的UPL特征库称为本地URL特征库。开启查询功能后,网络设备并不加载本地URL特征库至内存,而是加载初始URL特征库至内存。初始URL特征库为本地URL特征库的子特征库,即初始URL特征库中的URL为本地URL特征库中的部分URL。初始URL特征库中的URL为本地URL特征库中满足预设条件的URL,且初始URL特征库中的URL的数量小于第一预设数量。其中,第一预设数量可以根据网络设备的内存容量预先进行设定,以确保加载初始URL特征库不会占用过多的内存。例如,网络设备的内存容量为1000兆字节(Megabyte,MB),并为URL分类类型的查询功能预留了50MB的内存。50MB的内存最多可以加载五十万条URL的特征库。那么,将第一预设数量设为五十万,确保初始URL特征库中的URL的数量小于五十万。
上述预设条件可以根据实际的应用场景进行设定,以确保初始URL特征库中的URL为用户经常使用的URL。预设条件可以设定为URL的访问频率大于预设频率,或者,设定为URL的最近一次的访问时刻与当前时刻的时间差小于预设阈值。其中,无论是预设频率还是预设阈值都可以根据实际经验和第一预设数量进行设定,使得满足预设条件的URL的数量小于第一预设数量。例如,对于包括一千万条URL的本地URL特征库,第一预设数量为五十万。其中,一千万条URL中有四十万条URL的访问频率大于10次每天,有六十万条URL的访问频率大于9次每天,则将预设频率设为10次每天。
此外,无论是本地URL特征库还是初始URL特征库,除了库中的URL,都还包括库中URL对应的分类类型。
可选地,无论是本地URL特征库还是初始URL特征库,都还包括各个URL的MD5值、以及各个MD5值的哈希值。其中,MD5值的哈希值是指对MD5值的前n位字符进行哈希运算得到的哈希值。n的取值范围为4至15的正整数。对于不同的MD5值,可能运算得到同一个哈希值。因此,同一个哈希值可以对应于多个不同的MD5值。但MD5值与URL之间一一对应。
可选地,在加载初始URL特征库至内存之前,网络设备计算本地URL特征库中每个URL的MD5值,并根据每个MD5值的前n位字符计算每个MD5值的哈希值。计算出每个MD5值的哈希值后,网络设备生成查询文件,并按照每个MD5值的哈希值的大小顺序,将各个MD5值写入查询文件。网络设备根据哈希值的大小,可以按照由大到小的顺序写入,也可以按照由小到大的顺序写入。将MD5值写入查询文件后,网络设备生成索引文件,将各个哈希值,以及各个哈希值对应的位置信息写入索引文件。该位置信息用于指示一个哈希值对应的MD5值在查询文件中的位置。由于在查询文件中,MD5值是按照哈希值的大小顺序写入查询文件的,因此,一个哈希值对应的多个MD5值在查询文件中是连续的。位置信息可以是一个哈希值对应的MD5值的在查询文件中的起始位置和数据长度,也可以是一个哈希值对应的MD5值的在查询文件中的起始位置和结束位置。
需要说明的是,在本申请实施例中,MD5在文件中的位置是指文件的字节位置,数据长度是指字节长度。
步骤202,获取访问请求中的目标URL,并在初始URL特征库中查找是否包括目标URL。
终端在访问网站时,会向网站的服务器发送访问请求,例如HTTP请求。终端所发送的访问请求中包括网站的URL。因此,网络设备在检测到终端发送的访问请求时,可以从访问请求中获取目标URL。目标URL是指终端所要访问的网站的URL。网络设备获取到目标URL后,在内存所加载的初始URL特征库中查找目标URL。若初始URL特征库中包括目标URL,则执行步骤203;若初始URL特征库中不包括目标URL,则执行步骤204。
具体地,网络设备可以通过MD5值和哈希值查询初始URL特征库中是否包括目标URL。首先,网络设备计算目标URL的MD5值即第一MD5值。对于计算URL的MD5值,网络设备可以使用消息摘要算法(Message-Digest Algorithm),而消息摘要算法为本领域技术人员熟知的技术手段,本申请实施例对此不再进行赘述。网络设备在计算出第一MD5值后,再对第一MD5值的前n位字符进行哈希运算得到的第一哈希值。网络设备遍历初始URL特征库中的哈希值,查找初始URL特征库中是否包括上述第一哈希值。若初始URL特征库不包括第一哈希值,则网络设备确定初始URL特征库中不包括目标URL;若初始URL特征库包括第一哈希值,则网络设备查找第一哈希值在初始URL特征库中对应的MD5值是否包括第一MD5值。因为同一个哈希值可以对应于多个不同的MD5值,所以网络设备为了确定初始URL特征库中是否包括目标URL,需要进一步检测第一哈希值在初始URL特征库中对应的MD5值是否包括第一MD5值。对于第一哈希值对应的MD5值,网络设备同样可以进行遍历,来确定是否包括第一MD5值。若第一哈希值在初始URL特征库中对应的MD5值包括第一MD5值,则确定初始URL特征库中包括目标URL;若第一哈希值在初始URL特征库中对应的MD5值不包括第一MD5值,则确定初始URL特征库中不包括目标URL。
步骤203,确定目标URL对应的分类类型。
网络设备在确定初始URL特征库中包括目标URL后,根据目标URL,以及初始URL特征库中URL和分类类型的对应关系,确定目标URL对应的分类类型。
步骤204,在本地URL特征库查找是否包括目标URL。
网络设备在确定初始URL特征库中不包括目标URL后,确定本次分类查询失败,结束本次分类查询。但是,网络设备会异步地在本地URL特征库中查询中目标URL,进而确定目标URL的分类类型,以此作为本次分类查询失败的补救措施。由于,在本地URL特征库查询目标URL这一操作是本次分类查询结束后进行的,并且仅仅作为本次分类查询失败的补救措施,因此,网络设备不需要快速地、实时地进行查询。所以,网络设备无需将磁盘中存储的本地URL特征库加载至内存中进行查询。具体地,网络设备可以通过如下方式在本地URL特征库查询目标URL。
首先,网络设备在加载初始URL特征库的同时,初始化一个查询队列。在确定初始URL特征库中不包括目标URL后,网络设备将目标URL添加至查询队列中,以供异步查询。当进行查询时,网络设备处理查询队列,读取查询队列中的目标URL。此时,网络设备可以再次计算目标URL的第一MD5值和第一哈希值,也可以直接获取步骤202中的计算结果。网络设备检测上述索引文件中是否包括第一哈希值。因为索引文件包括本地URL特征库各个URL对应的哈希值,所以,若索引文件中不包括第一哈希值,则网络设备确定本地URL特征库不包括目标URL;若索引文件中包括第一哈希值,则获取第一哈希值对应的位置信息。网络设备根据第一哈希值对应的位置信息,从查询文件中读取第一哈希值对应的MD5值,并将其加载至内存中。其中第一哈希值对应的MD5值可以有多个,也可以只有一个。加载后,网络设备检测第一哈希值对应的MD5值中是否包括第一MD5值。网络设备可以遍历第一哈希值对应的MD5值,以确定是否包括第一MD5值。若第一哈希值对应的MD5值中包括第一MD5值,则网络设备确定本地URL特征库中包括目标URL;若第一哈希值对应的MD5值中不包括第一MD5值,则确定本地URL特征库中不包括目标URL。
步骤205,当本地URL特征库中包括目标URL时,确定目标URL对应的分类类型,并加载至初始URL特征库。
当本地URL特征库中包括目标URL时,网络设备可以根据目标URL,以及本地URL特征库中URL和分类类型的对应关系,确定目标URL对应的分类类型。此外,网络设备将目标URL和目标URL对应的分类类型加载至内存中的初始URL特征库中。那么,当有用户再次访问目标URL时,网络设备通过查询初始URL特征库确定其分类类型。
步骤206,当本地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特征库中的部分URL。其中,第二预设数量可以由技术人员手动设定,也可以根据网络设备的内存容量进行设定。
网络设备会根据初始URL特征库中的URL的数量动态地调整预设时间间隔。URL的数量越多,则预设时间间隔越短;URL的数量越少,则预设时间间隔越长。当初始URL特征库中的URL的数量大于第二预设数量时,网络设备获取初始URL特征库中的URL的生存时间。该生存时间是指URL被加载至内存的时间。网络设备根据各个URL的生存时间,删除生存时间大于预设时长的URL。预设时长可以根据实际经验进行设定,例如设为24小时。删除URL是指网络设备从初始URL特征库中删除该URL,以及该URL与分类类型之间的对应关系。
示例性地,网络设备在一次检测中,检测到初始URL特征库中的URL的数量为五十万,则每隔12个小时检测一次初始URL特征库中的URL的数量。若在一次检测中,检测到初始URL特征库中的URL的数量为八十万,则每隔1个小时检测一次初始URL特征库中的URL的数量。第二预设数量设为一百万,预设时长设为24小时。那么,网络设备检测到初始URL特征库中的URL的数量大于一百万时,删除生存时间超过24小时的URL。
在本申请实施例中,网络设备加载至内存的是URL数量小于第一预设数量的初始URL特征库,通过第一预设数量避免初始URL特征库的数据量过大。网络设备还通过预设条件来设置初始URL特征库的URL为用户经常访问的URL;而且,网络设备会从本地URL特征库中,将无法通过初始URL特征库查询到的URL及其分类类型添加至初始URL特征库,从而保证即使加载的初始URL特征库仅包含本地URL特征库的部分URL,也能够确定目标URL的分类类型,从而在能够进行URL分类查询的同时,避免占用过多的内存,提高了网络设备的运行效率。
对于根据URL的MD5值和哈希值查找URL的方式,当URL特征库中的URL的数量过多时,会出现哈希值分配不均的情况。哈希值分配不均是某些哈希值对应的MD5值过多,进而导致哈希冲突,使得查找URL分类的效率降低。对此,本申请除上述图2所示的方法外,还提供一种基于布隆过滤器(Bloom Filter,BF)的查询方法,在上述步骤202之前,即在初始URL特征库中查找目标URL之前,利用布隆过滤器预先确定目标URL是否在本地URL特征库中。如图3所示,其根据一示例性实施例示出了的一种基于布隆过滤器的查询方法的流程图,该方法可以包括如下几个步骤:
步骤301,在加载初始URL特征库至内存之前,生成一个位数组。
布隆过滤器是一种高效率的数据结构,它利用位数组简洁地表示一个集合,并能判断一个元素是否属于这个集合。因此,在本申请实施例中,网络设备可以利用布隆过滤器来预先确定目标URL是否在本地URL特征库中。
具体地,网络设备先计算本地URL特征库中各个URL的MD5值,再获取各个URL的MD5值的哈希数据。一个MD5值的哈希数据包括根据该MD5值每一位字符计算的k个完全哈希值。该完全哈希值与上述图2示例中的哈希值不同,并不是根据MD5值的前n位字符计算得到的,而是根据MD5值每一位字符计算得到的。例如,对于十六位的MD5值,则根据十六位字符进行哈希运算,得到完全哈希值。
一个MD5值的哈希数据包括k个完全哈希值。其中,k为大于0的整数。为了计算得到一个MD5值的k个完全哈希值,网络设备通常采用两种计算方式。第一种,采用k个不同的哈希函数对同一MD5值进行哈希运算,得到k个完全哈希值。第二种,采用同一哈希函数对同一MD5进行k次哈希运算,但每次运算的参数不同,例如该参数为每次运算的次数,第一次参数为1,第二次参数为2,以此类推,直至完成第k次运算,最终也得到k个完全哈希值。对于采样两种运算方式的哪一种,本申请实施例不作具体限定。
哈希数据中的完全哈希值的个数k,可以根据如下关系式计算得到:
其中,f表示期望错误率。布隆过滤器判断元素是否存在集合中的方法是一种概率算法。其可能会出现错误判断,但不会出现遗漏。具体是指,当通过布隆过滤器判断元素不再集合中时,那该元素一定不在集合中,但当通过布隆过滤器判断元素存在集合中时,有一定的概率出现判断错误。这个概率就是错误率,而期望错误率是指用户期望达到的错误率,可以预先设定。例如,可以设为0.0001。
在计算得到各个URL的MD5值的哈希数据后,网络设备根据各个URL的MD5值的哈希数据,生成一个位数组,并在加载初始URL特征库时,一并将该位数组加载至内存。该位数组用于表示各个URL的MD5值的哈希数据中的完全哈希值。位数组中包括M位字节,每一位的值为0或1。一位字节上的值为1,则表示存在与该字节位数的值相同的完全哈希值。一位字节上的值为0,则表示不存在与该字节位数的值相同的完全哈希值。例如,一个10位的位数组,其0位,2位,4位,6位,8位上的值为1,1位,3位,5位,7位,9位上的值为0,则可以表示各个URL的MD5值的哈希数据中的完全哈希值包括0,2,4,6和8。因此,在生成位数组的过程中,网络设备先生成一个每一位均为0的位数组,再根据每个完全哈希值的具体数值,将相应位数的值置为1。其中,即使有多个MD5值的完全哈希值相同,位数组中相应位数的值也被置为1,不会在0与1之间被反复设置。
示例性地,存在两个URL,则计算得到2个MD5值A和B。A的完全哈希值为0,3和8。B的完全哈希值为1,3和7。那么,生成一个10位的位数组。Cx表示位数组第X位上的值。那么,C0,C1,C3,C7和C8为1,其余位上的值为0。
位数组的位数M可以根据如下关系式计算:
其中,n表示本地URL特征库中的URL的数量。
步骤302,计算第一MD5值的哈希数据。
网络设备在获取到目标URL之后,以及在初始URL特征库中查找目标URL之前,计算目标URL的第一MD5值,并根据第一MD5值每一位字符,计算第一MD5值的哈希数据。计算第一MD5值的哈希数据的方式与上述步骤301中计算哈希数据的方式相同。因此,第一MD5值的哈希数据中也包括k个完全哈希值。
步骤303,检测第一MD5值的哈希数据中的k个完全哈希值是否均在位数组表示的完全哈希值中。
网络设备根据第一MD5值的哈希数据中的k个完全哈希值,检测位数组中对应位上的值是否均为1。若是,则确定第一MD5值的哈希数据中的k个完全哈希值均在位数组表示的完全哈希值中;若否,则确定第一MD5值的哈希数据中的k个完全哈希值不是都在位数组表示的完全哈希值中。k个完全哈希值均在位数组表示的完全哈希值中,表示目标URL为本地URL特征库中的URL,则网络设备执行步骤304。k个完全哈希值不是都在位数组表示的完全哈希值中,表示目标URL不是本地URL特征库中的URL,则网络设备执行步骤305。
示例性地,如图4所示,一个10位的位数组401,其0位,2位,4位,6位,8位上的值为1。一个目标URL的MD5值的哈希数据402包括3个完全哈希值:2,4,和6,而位数组401的2位,4位和6位上的值为1,则表示该目标URL为本地URL特征库中的URL。另一个目标URL的MD5值的哈希数据403包括3个完全哈希值:2,4,和7,而位数组401的7位上的值为0,则表示该目标URL不为本地URL特征库中的URL。
步骤304,开始执行在初始URL特征库中查找目标URL的步骤。
网络设备确定目标URL为本地URL特征库中的URL,则开始执行在初始URL特征库中查找目标URL的步骤,即从上述图2示例中的步骤202开始执行。开始执行后的分类查询具体步骤和内容,与上述图2示例中的步骤202至步骤206相同,本申请实施例在此不再进行赘述。
步骤305,结束目标URL的分类查询。
网络设备确定目标URL不为本地URL特征库中的URL,表明根据现有的本地URL特征库无法确定目标URL的分类类型,则结束本次目标URL的分类查询。
在本申请实施例中,由于对于一个MD5值,使用了多个完全哈希值,避免出现哈希值分配不均的情况。此外,通过布隆过滤器,能够快速地确定目标URL是否在本地URL特征库中,在对初始URL特征库进行查找前,预先进行了一次过滤查找,筛选掉了不在本地URL特征库中的目标URL,减少了不必要的查找时间,进一步提高了网络设备的运行效率。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
图5是根据一示例性实施例示出的一种统一资源定位符分类的查询装置的框图。该装置具有实现上述图2方法示例的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以包括:第一加载模块501,第一查找模块502,第二查找模块503和第二加载模块504。
第一加载模块501,用于加载初始统一资源定位符URL特征库至内存,所述初始URL特征库中的URL为本地URL特征库中满足预设条件的URL,且所述初始URL特征库中的URL的数量小于第一预设数量。
第一查找模块502,用于获取访问请求中的目标URL,并在所述初始URL特征库中查找所述目标URL;以及,当所述初始URL特征库中包括所述目标URL时,确定所述目标URL对应的分类类型。
第二查找模块503,用于当所述初始URL特征库中不包括所述目标URL时,在所述本地URL特征库中查找所述目标URL。
第二加载模块504,用于当所述本地URL特征库中包括所述目标URL时,确定所述目标URL对应的分类类型,并将所述目标URL和所述目标URL对应的分类类型加载至所述初始URL特征库中。
在本申请实施例提供的装置中,网络设备加载至内存的是URL数量小于第一预设数量的初始URL特征库,通过第一预设数量避免初始URL特征库的数据量过大。网络设备还通过预设条件来设置初始URL特征库的URL为用户经常访问的URL;而且,网络设备会从本地URL特征库中,将无法通过初始URL特征库查询到的URL及其分类类型添加至初始URL特征库,从而保证即使加载的初始URL特征库仅包含本地URL特征库的部分URL,也能够确定目标URL的分类类型,从而在能够进行URL分类查询的同时,避免占用过多的内存,提高了网络设备的运行效率。
可选地,第一查找模块502,具体用于:
根据所述目标URL,计算第一消息摘要算法MD5值,所述第一MD5值是指所述目标URL的MD5值;根据所述第一MD5值前n位字符,计算第一哈希值;查找所述初始URL特征库是否包括所述第一哈希值;若所述初始URL特征库不包括所述第一哈希值,则确定所述初始URL特征库中不包括所述目标URL;若所述初始URL特征库包括所述第一哈希值,则查找所述第一哈希值在所述初始URL特征库中对应的MD5值是否包括所述第一MD5值;若所述第一哈希值在所述初始URL特征库中对应的MD5值包括所述第一MD5值,则确定所述初始URL特征库中包括所述目标URL;若所述第一哈希值在所述初始URL特征库中对应的MD5值不包括所述第一MD5值,则确定所述初始URL特征库中不包括所述目标URL。
可选地,所述装置还包括:文件生成模块。
所述文件生成模块,用于:
计算所述本地URL特征库中各个URL的MD5值;根据所述各个URL的MD5值的前n位字符,计算所述各个URL的MD5值的哈希值;生成查询文件,所述查询文件包括根据所述哈希值的大小排列的所述各个URL的MD5值;生成索引文件,所述索引文件包括所述哈希值和所述哈希值对应的位置信息,所述位置信息用于指示一个哈希值对应的MD5值在所述查询文件中的位置。
可选地,所述第二查找模块503,具体用于:
获取所述索引文件中所述第一哈希值对应的位置信息;根据所述位置信息,将所述查询文件中所述第一哈希值对应的MD5值加载至所述内存中;检测所述第一哈希值对应的MD5值中是否包括所述第一MD5值;若所述第一哈希值对应的MD5值中包括所述第一MD5值,则确定所述本地URL特征库中包括所述目标URL;若所述第一哈希值对应的MD5值中不包括所述第一MD5值,则确定所述本地URL特征库中不包括所述目标URL。
可选地,所述装置还包括:数组生成模块。
所述数组生成模块,用于:
计算所述本地URL特征库中各个URL的MD5值;计算所述各个URL的MD5值的哈希数据,所述哈希数据包括根据MD5值每一位字符计算的k个完全哈希值,k为大于0的整数;根据所述每个URL的MD5值的哈希数据,生成一个位数组,所述位数组用于表示所述各个URL的MD5值的哈希数据中的完全哈希值。
可选地,所述装置还包括:第三查找模块。
所述第三查找模块,用于:
根据所述目标URL,计算第一MD5值,所述第一MD5值是指所述目标URL的MD5值;根据所述第一MD5值每一位字符,计算所述第一MD5值的哈希数据;当所述第一MD5值的哈希数据中的k个完全哈希值均在所述位数组表示的完全哈希值中时,执行所述在所述初始URL特征库中查找所述目标URL的步骤;当所述第一MD5值的哈希数据中的k个完全哈希值中任一完全哈希值不在所述位数组表示的完全哈希值中时,结束所述目标URL的分类查询。
可选地,所述装置还包括:删除模块。
所述删除模块,用于:
每隔预设时间间隔,检测所述初始URL特征库中的URL的数量是否大于第二预设数量,所述预设时间间隔根据所述初始URL特征库中的URL的数量设定;当所述初始URL特征库中的URL的数量大于第二预设数量时,获取所述初始URL特征库中的URL的生存时间,所述生存时间是指URL被加载至内存的时间;删除所述生存时间大于预设时长的URL。
具体实现中,本申请还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本申请提供的统一资源定位符分类的查询方法的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
本领域的技术人员可以清楚地了解到本申请实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (8)
1.一种统一资源定位符分类的查询方法,其特征在于,所述方法包括:
加载初始统一资源定位符URL特征库至内存,所述初始URL特征库中的URL为本地URL特征库中满足预设条件的URL,且所述初始URL特征库中的URL的数量小于第一预设数量;
获取访问请求中的目标URL,并在所述初始URL特征库中查找所述目标URL;
当所述初始URL特征库中包括所述目标URL时,确定所述目标URL对应的分类类型;
当所述初始URL特征库中不包括所述目标URL时,在所述本地URL特征库中查找所述目标URL;
当所述本地URL特征库中包括所述目标URL时,确定所述目标URL对应的分类类型,并将所述目标URL和所述目标URL对应的分类类型加载至所述初始URL特征库中。
2.根据权利要求1所述的方法,其特征在于,所述在所述初始URL特征库中查找所述目标URL,包括:
根据所述目标URL,计算第一消息摘要算法MD5值,所述第一MD5值是指所述目标URL的MD5值;
根据所述第一MD5值前n位字符,计算第一哈希值;
查找所述初始URL特征库是否包括所述第一哈希值;
若所述初始URL特征库不包括所述第一哈希值,则确定所述初始URL特征库中不包括所述目标URL;
若所述初始URL特征库包括所述第一哈希值,则查找所述第一哈希值在所述初始URL特征库中对应的MD5值是否包括所述第一MD5值;
若所述第一哈希值在所述初始URL特征库中对应的MD5值包括所述第一MD5值,则确定所述初始URL特征库中包括所述目标URL;
若所述第一哈希值在所述初始URL特征库中对应的MD5值不包括所述第一MD5值,则确定所述初始URL特征库中不包括所述目标URL。
3.根据权利要求2所述的方法,其特征在于,所述加载初始URL特征库至内存之前,还包括:
计算所述本地URL特征库中各个URL的MD5值;
根据所述各个URL的MD5值的前n位字符,计算所述各个URL的MD5值的哈希值;
生成查询文件,所述查询文件包括根据所述哈希值的大小排列的所述各个URL的MD5值;
生成索引文件,所述索引文件包括所述哈希值和所述哈希值对应的位置信息,所述位置信息用于指示一个哈希值对应的MD5值在所述查询文件中的位置。
4.根据权利要求3所述的方法,其特征在于,所述在所述本地URL特征库查找中所述目标URL,包括:
获取所述索引文件中所述第一哈希值对应的位置信息;
根据所述位置信息,将所述查询文件中所述第一哈希值对应的MD5值加载至所述内存中;
检测所述第一哈希值对应的MD5值中是否包括所述第一MD5值;
若所述第一哈希值对应的MD5值中包括所述第一MD5值,则确定所述本地URL特征库中包括所述目标URL;
若所述第一哈希值对应的MD5值中不包括所述第一MD5值,则确定所述本地URL特征库中不包括所述目标URL。
5.根据权利要求1所述的方法,其特征在于,所述加载初始URL特征库至内存之前,还包括:
计算所述本地URL特征库中各个URL的MD5值;
计算所述各个URL的MD5值的哈希数据,所述哈希数据包括根据MD5值每一位字符计算的k个完全哈希值,k为大于0的整数;
根据所述每个URL的MD5值的哈希数据,生成一个位数组,所述位数组用于表示所述各个URL的MD5值的哈希数据中的完全哈希值。
6.根据权利要求5所述的方法,其特征在于,所述在所述初始URL特征库中查询所述目标URL之前,还包括:
根据所述目标URL,计算第一MD5值,所述第一MD5值是指所述目标URL的MD5值;
根据所述第一MD5值每一位字符,计算所述第一MD5值的哈希数据;
当所述第一MD5值的哈希数据中的k个完全哈希值均在所述位数组表示的完全哈希值中时,执行所述在所述初始URL特征库中查找所述目标URL的步骤;
当所述第一MD5值的哈希数据中的k个完全哈希值中任一完全哈希值不在所述位数组表示的完全哈希值中时,结束所述目标URL的分类查询。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述方法还包括:
每隔预设时间间隔,检测所述初始URL特征库中的URL的数量是否大于第二预设数量,所述预设时间间隔根据所述初始URL特征库中的URL的数量设定;
当所述初始URL特征库中的URL的数量大于第二预设数量时,获取所述初始URL特征库中的URL的生存时间,所述生存时间是指URL被加载至内存的时间;
删除所述生存时间大于预设时长的URL。
8.一种统一资源定位符分类的查询装置,其特征在于,所述装置包括:
第一加载模块,用于加载初始统一资源定位符URL特征库至内存,所述初始URL特征库中的URL为本地URL特征库中满足预设条件的URL,且所述初始URL特征库中的URL的数量小于第一预设数量;
第一查找模块,用于获取访问请求中的目标URL,并在所述初始URL特征库中查找所述目标URL;以及,当所述初始URL特征库中包括所述目标URL时,确定所述目标URL对应的分类类型;
第二查找模块,用于当所述初始URL特征库中不包括所述目标URL时,在所述本地URL特征库中查找所述目标URL;
第二加载模块,用于当所述本地URL特征库中包括所述目标URL时,确定所述目标URL对应的分类类型,并将所述目标URL和所述目标URL对应的分类类型加载至所述初始URL特征库中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811569021.XA CN109726340A (zh) | 2018-12-21 | 2018-12-21 | 统一资源定位符分类的查询方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811569021.XA CN109726340A (zh) | 2018-12-21 | 2018-12-21 | 统一资源定位符分类的查询方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109726340A true CN109726340A (zh) | 2019-05-07 |
Family
ID=66296303
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811569021.XA Pending CN109726340A (zh) | 2018-12-21 | 2018-12-21 | 统一资源定位符分类的查询方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109726340A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111177719A (zh) * | 2019-08-13 | 2020-05-19 | 腾讯科技(深圳)有限公司 | 地址类别判定方法、装置、计算机可读存储介质及设备 |
CN111259451A (zh) * | 2020-01-23 | 2020-06-09 | 奇安信科技集团股份有限公司 | 文件安全等级鉴定方法及装置 |
CN111460337A (zh) * | 2020-03-23 | 2020-07-28 | 武汉思普崚技术有限公司 | 一种url识别率的分析方法及装置 |
CN112632360A (zh) * | 2020-12-30 | 2021-04-09 | 北京安博通科技股份有限公司 | 一种大数据url库的匹配方法、装置及存储介质 |
CN113177169A (zh) * | 2021-05-18 | 2021-07-27 | 北京天融信网络安全技术有限公司 | 网络地址的类别获取方法、装置、设备及存储介质 |
CN113177169B (zh) * | 2021-05-18 | 2024-06-25 | 北京天融信网络安全技术有限公司 | 网络地址的类别获取方法、装置、设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104144170A (zh) * | 2014-08-25 | 2014-11-12 | 网神信息技术(北京)股份有限公司 | 网页地址的过滤方法、装置和系统 |
US10079876B1 (en) * | 2014-09-30 | 2018-09-18 | Palo Alto Networks, Inc. | Mobile URL categorization |
-
2018
- 2018-12-21 CN CN201811569021.XA patent/CN109726340A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104144170A (zh) * | 2014-08-25 | 2014-11-12 | 网神信息技术(北京)股份有限公司 | 网页地址的过滤方法、装置和系统 |
US10079876B1 (en) * | 2014-09-30 | 2018-09-18 | Palo Alto Networks, Inc. | Mobile URL categorization |
Non-Patent Citations (1)
Title |
---|
代码一刀: "《大数据算法系列-布隆过滤器-代码一刀-博客园》", 《大数据算法系列-布隆过滤器-代码一刀-博客园》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111177719A (zh) * | 2019-08-13 | 2020-05-19 | 腾讯科技(深圳)有限公司 | 地址类别判定方法、装置、计算机可读存储介质及设备 |
CN111259451A (zh) * | 2020-01-23 | 2020-06-09 | 奇安信科技集团股份有限公司 | 文件安全等级鉴定方法及装置 |
CN111460337A (zh) * | 2020-03-23 | 2020-07-28 | 武汉思普崚技术有限公司 | 一种url识别率的分析方法及装置 |
CN111460337B (zh) * | 2020-03-23 | 2023-04-11 | 武汉思普崚技术有限公司 | 一种url识别率的分析方法及装置 |
CN112632360A (zh) * | 2020-12-30 | 2021-04-09 | 北京安博通科技股份有限公司 | 一种大数据url库的匹配方法、装置及存储介质 |
CN113177169A (zh) * | 2021-05-18 | 2021-07-27 | 北京天融信网络安全技术有限公司 | 网络地址的类别获取方法、装置、设备及存储介质 |
CN113177169B (zh) * | 2021-05-18 | 2024-06-25 | 北京天融信网络安全技术有限公司 | 网络地址的类别获取方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230128061A1 (en) | Unsupervised encoder-decoder neural network security event detection | |
US10834106B2 (en) | Network security event detection via normalized distance based clustering | |
CN109726340A (zh) | 统一资源定位符分类的查询方法及装置 | |
CN110099059B (zh) | 一种域名识别方法、装置及存储介质 | |
CN110650128B (zh) | 一种检测以太坊数字货币盗取攻击的系统及方法 | |
CN109117275B (zh) | 基于数据分片的对账方法、装置、计算机设备及存储介质 | |
WO2018032936A1 (zh) | 一种对算法生成域名进行检测的方法及装置 | |
US20100082749A1 (en) | Retrospective spam filtering | |
CN107342913B (zh) | 一种cdn节点的探测方法和装置 | |
US9135630B2 (en) | Systems and methods for large-scale link analysis | |
CN108366012B (zh) | 一种社交关系建立方法、装置及电子设备 | |
CN107580032B (zh) | 数据处理方法、装置及设备 | |
CN103631787A (zh) | 网页类型识别方法以及网页类型识别装置 | |
CN107154959A (zh) | 一种访问网络地址的方法与设备 | |
CN107147662B (zh) | 域名劫持发现的方法 | |
US11509669B2 (en) | Network data timeline | |
CN109150819B (zh) | 一种攻击识别方法及其识别系统 | |
CN115001724B (zh) | 网络威胁情报管理方法、装置、计算设备及计算机可读存储介质 | |
CN110086840A (zh) | 图像数据存储方法、装置及计算机可读存储介质 | |
CN110661892B (zh) | 一种域名配置信息处理方法及装置 | |
CN108133046B (zh) | 数据分析方法及装置 | |
CN113395268A (zh) | 一种基于线上线下融合的网络爬虫拦截方法 | |
CN115277170B (zh) | 一种僵尸网络与cdn网络的主动分类方法及系统 | |
CN110275863A (zh) | 文件移动方法、装置及存储介质 | |
CN115580483A (zh) | 异常加密流量检测方法、装置、电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190507 |
|
RJ01 | Rejection of invention patent application after publication |