Url存储方法、网页过滤方法、装置及系统的制作方法

文档序号:7716942阅读:94来源:国知局
专利名称:Url存储方法、网页过滤方法、装置及系统的制作方法
技术领域
本发明涉及通信技术领域,尤其涉及URL存储方法、网页过滤方法、装置及系统。
背景技术
随着网络技术和资源的发展,网络所承载的业务和功能愈加多样化,企业内部为了提高安全性及对员工的网络访问进行限制,通常在企业网络出口部署统一资源定位符 (URL)过滤网关。其中,URL是用于完整描述因特网(Internet)上网页和其他资源的地址的一种标识方法,Internet上的每一个网页都具有一个唯一对应的URL地址,该URL地址可以是本地磁盘、局域网上的某一台计算机也可以是化切!!!讨上的站点,URL地址即为通常所称的网址。该URL过滤网关能对用户所访问的URL进行审计,判断其是否合法,并当判断结果为不合法时阻止该访问。URL过滤网关判断用户访问的URL是否合法需基于一个URL库,即URL过滤网关获取用户访问的URL后,查询URL库中的URL字段以匹配命中与该URL相对应的记录,并进一步查询该URL字段所对应的分类字段,获知该URL所对应的分类为合法访问或非法访问,从而进行相应处理。由于URL过滤网关为出口网关,所以当用户数多时,大量的URL查询将极大地影响网络性能。

发明内容
本发明提供一种URL存储方法、网页过滤方法、装置及系统,能够在执行网页过滤时提供高效率的URL查询,从而提高网络性能。本发明提供一种URL存储方法,包括步骤Sll,根据预定分类规则对URL进行分类;步骤S12,分别生成用于存储各类型URL的布隆过滤器;步骤S13,根据各URL的类型,将所述URL存储在对应的所述布隆过滤器中。根据本发明的另一方面,还提供一种URL存储设备,包括分类模块,用于根据预定分类规则对URL进行分类;生成模块,用于分别生成用于存储各类型URL的布隆过滤器;存储模块,用于根据各URL的类型,将所述URL存储在对应的所述布隆过滤器中。根据本发明的又一方面,还提供一种网页过滤方法,包括步骤S21,过滤网关设备从本发明提供的URL存储设备获取分类存储有URL的布隆过滤器;步骤S22,所述过滤网关设备根据所述布隆过滤器中存储的URL和所述URL的类型对网页进行过滤。根据本发明的又一方面,还提供一种过滤网关设备,其特征在于,包括获取模块,用于从URL存储设备获取分类存储有URL的布隆过滤器;过滤模块,用于根据所述布隆过滤器中存储的URL和所述URL的类型对网页进行过滤ο根据本发明的再一方面,还提供一种网页过滤系统,包括本发明提供的URL存储设备和本发明提供的过滤网关设备。根据本发明的URL存储方法、网页过滤方法、装置及系统,通过创建对应于各类 URL的布隆过滤器,并将URL按类型存储在对应的布隆过滤器中,所以当过滤网关设备获取存储有URL的布隆过滤器后、对用户访问的URL进行审计时,无需针对每个待审计的URL均遍历内存数量庞大的URL库,极大地提高了查询效率,因此即使同时有大量用户发起网络访问,也能够确保网络的性能。而且,还节约了大量存储空间。此外,采用还能够在无需进行额外加密的情况下实现对URL的高度保密。


图1为利用URL进行网页过滤的系统架构图。图2为本发明URL存储方法的流程示意图。图3为本发明URL存储设备的结构示意图。图4为本发明网页过滤方法的流程示意图。图5为本发明过滤网关设备的结构示意图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图,对本发明的技术方案进行清楚、完整地描述。图1为利用URL进行网页过滤的系统架构图。如图1所示,包括用于生成URL库的URL服务器和通过hternet从URL服务器获取URL库以执行网页过滤的过滤网关设备。 下述实施例的URL存储方法为URL服务器所执行的操作。图2为本发明URL存储方法的流程示意图。如图2所示,该URL存储方法包括以下步骤步骤Sll,根据预定分类规则对URL进行分类;具体地,所划分的URL类型例如包括合法访问、非法访问等。在此步骤中,设定类型后,将全部的类型名存储在一个管理文件中,并根据用户需求将URL库中的全部URL按照设定的类型进行划分。步骤S12,分别生成用于存储各类型URL的布隆过滤器;上述步骤可具体包括步骤S121,统计各类型URL的数量;步骤S122,根据所述URL的数量和各URL所占用的字节数,申请内存空间;步骤S123,根据所述URL的数量和设定的最高假通过率确定所述布隆过滤器的散列函数。其中,布隆过滤器于一九七零年由巴顿布隆提出,其原理如下一个布隆过滤器由
k个相互独立的散列函数hl,h2,......,hk和一个长度为m的位向量组成,其中,每个散
列函数的值域均为{0,1,......,m-1},又因为一个字节有8个比特位,因此位向量实际占
有的内存空间为m/8个字节,位向量的所有的位均初始化为0。集合S= {sl,s2,......,sn},用k个散列函数对集合S中的每一个元素计算一个散列序列(hl(s),h2(s),......,
hk(s)),然后将位向量中对应的散列序列位设为1,则称该布隆过滤器装置了数据元素集合 S,或者说该布隆过滤器表示了数据元素集合S。例如若hi (si) =5,则将位向量的第6位设为1,若h2(sl) =10,则将位向量的第11位设为1,直到若hk(sl) =n-l,将位向量的第 η位设为1。当查询某个数据元素是否在集合S中时,用同样的k个散列函数对数据元素计算一个散列序列,如果散列序列所对应的位向量上的每一位均为1,则认为该数据元素S, 否则不属于S。在上述步骤S122中所申请的内存空间即为用于布隆过滤器的空间。例如通过管理文件获取一个类型名,利用这个类型名在URL库中统计该类型下URL的记录数,以根据下述公式1计算布隆过滤器的大小T = 2n公式 1其中,T为布隆过滤器的大小,η应满足下述公式2的自然数2n_1 < count (url) < 2n公式 2其中,C0unt(url)为该类型下URL的记录数,B为各URL所占用的字节数。在步骤S123中所确定的布隆过滤器的散列函数可以为多种形式,其只要在存储该类型的全部URL时能够满足其假通过率不超过设定的最高假通过率即可。其中,假通过率为布隆过滤器在进行元素查询时,将不属于集合中的元素误认为属于集合中这种假通过的概率。一个使用了 k个散列函数的m位长的布隆过滤器中装入η个元素后,位向量中某一位仍为0的概率为(1-1/!!!)15",则假通过率ρ为ρ= [l-(l-l/m) knJk0因此,当根据用户需求设定一个可接受的最高假通过率后,则可结合URL的记录数确定出散列函数的个数k和位向量长度m。例如,当URL的记录数为100w,用户设定的最高假通过0.0001,则散列函数的个数k和位向量长度m分别可以为8和2000w,即此时所确定的散列函数可以为满足个数为8、且位向量长度为2000w的随意构造的一组数学函数。步骤S13,根据各URL的类型,将所述URL存储在对应的所述布隆过滤器中。上述步骤可具体包括步骤S131,根据散列函数计算所述URL的散列值;步骤S132,按照预定的标识位设置方式,将所述散列值在所申请的内存空间中对应的位置设置标识位。其中,该标识位设置方式可以为用户设定的任意标识方式。例如所设定的标识位设置方式为setbit(a,i) :((a)[(i)/NBBY] = 1 << (⑴% NBBY)),其中数组a为布隆过滤器所申请的内存空间的首地址,则a[(i)/NBBY]为布隆过滤器的第[(i)/NBBY]个位置的值;i为所计算的URL的散列值,NBBY为一个字节所占用的比特位,即NBBY = 8;((a)[(i)/ NBBY] = 1 << ((i)% NBBY))表示将布隆过滤器的第[(i)/NBBY]个位置中的第(⑴% NBBY))个比特位设置为1。对同一类型的全部URL均执行上述步骤S131和步骤S132,以将其存储到该类型的布隆过滤器中。并且,对于全部类型的URL分别执行上述步骤S12和步骤S13。至此,实现了将URL库中的URL以分类布隆过滤器的形式存储。根据上述实施例的URL存储方法,通过创建对应于各类URL的布隆过滤器,并将URL按类型存储在对应的布隆过滤器中,所以当过滤网关设备获取存储有URL的布隆过滤器后、对用户访问的URL进行审计时,若要查询该URL是否位于某类型的布隆过滤器时,例如查询该URL是否位于用于存储可合法访问的URL的布隆过滤器中,只需根据该类型布隆过滤器的散列函数计算该URL的散列值,如果该散列值所对应的位向量的位置均为1,则可获知该URL位于该布隆过滤器中,即该URL为合法访问网址。由于无需针对每个待审计的URL均遍历内存数量庞大的URL库,所以极大地提高了查询效率,所以即使同时有大量用户发起网络访问,也能够确保网络的性能。而且,通过采用布隆过滤器来存储 URL,还节约了大量存储空间,例如对于存储480w个URL记录的URL库(假设各URL占用 20个字节),在所有的布隆过滤器都被完全使用的情况下,存储这些URL所需的空间仅为 91. 5M(480w*20B/1024/1024)。此外,采用上述实施例的URL存储方法存储URL时,即使被其他人导出URL库,也无法将其还原为各URL条目,从而在无需进行额外加密的情况下即可实现了对该URL库的高度保密。进一步地,在上述实施例的URL存储方法中,还包括步骤S14,向所述布隆过滤器中增加URL时,生成增量包,所述增量包中包括所增加的URL的散列值和所述增加的URL的类型,所述增量包用于发送至过滤网关设备,以由过滤网关设备根据所述增量包执行增量更新。具体地,当需在布隆过滤器中增加URL时,会使该布隆过滤器的假通过率提高。所以需根据要增加的URL数量检验在原布隆过滤器中增加这些URL后,是否仍能够满足该布隆过滤器的假通过率不超过设定的最高假通过率。若能够满足,则仅生成增量包,更为具体地,根据该布隆过滤器的散列函数计算要增加的URL的散列值,将该URL的散列值连同该 URL的类型对应存储在增量包中。若不能够满足,则重新生成该类型的布隆过滤器,该新生成的布隆过滤器中包括原布隆过滤器中的全部URL和本次新增加的URL。该新生成的布隆过滤器所占用的内存空间T’与原布隆过滤器所占用的内存空间T的关系应满足Τ’ = T*2。表1例示了增量包中的存储格式。如表1中所示,按照上述方式生成增量包时,每增加一个URL,需要4*Ν+1字节的存储空间。其中,N表示散列函数个数,4表示存储计算出的每个散列值所要占用的字节数(Hashl-HashS每个字段为4个字节),1表示URL对应的分类id占用1字节(Classed为一个字节)。此外,当增加多个URL时,还可以对同类别的 URL进行合并处理,以节约存储空间。例如,向数据库中插入新的Hash值时,先查询在该类别下是否有相同的值,如果有,则该Hash值设为空。Hash值为空时仅占用一个字节,所以当采用这种方式存储时,如果有相同类别的URL出现Hash值相同,则对于每一个相同的Hash 值可节省3个字节的存储空间。并且,若多个增加的URL所对应的部分Hash值重叠,可不重复记录这种重叠的Hash值,即不必按照一条URL记录固定对应于8个Hash值的方式进行存储,以节约存储空间。表 权利要求
1.一种统一资源定位符URL存储方法,其特征在于,包括 步骤Sll,根据预定分类规则对URL进行分类;步骤S12,分别生成用于存储各类型URL的布隆过滤器;步骤S13,根据各URL的类型,将所述URL存储在对应的所述布隆过滤器中。
2.根据权利要求1所述的URL存储方法,其特征在于,还包括步骤S14,向所述布隆过滤器中增加URL时,生成增量包,所述增量包中包括所增加的 URL的散列值和所增加的URL的类型,所述增量包用于发送至过滤网关设备,以由过滤网关设备根据所述增量包执行增量更新。
3.根据权利要求2所述的URL存储方法,其特征在于,在所述步骤S14之前还包括 根据增加URL后所述布隆过滤器中的URL数量,检验增加所述URL后所述布隆过滤器的假通过率是否不超过预先设定的最高假通过率;若是,则执行所述步骤S14 ;若否,则重新生成布隆过滤器,重新生成的布隆过滤器所占用内存空间为增加URL前布隆过滤器所占用内存空间的两倍。
4.根据权利要求1或2所述的URL存储方法,其特征在于,还包括步骤S15,从所述布隆过滤器中删除URL时,生成删除URL后的新布隆过滤器和删除包, 所述删除包中包括执行删除更新前的所述布隆过滤器与所述新布隆过滤器在相同位置出现不同值的位置和删除的URL的类型,所述删除包用于发送至过滤网关设备,以由过滤网关设备根据所述删除包执行删除更新。
5.一种URL存储设备,其特征在于,包括分类模块,用于根据预定分类规则对URL进行分类;生成模块,用于分别生成用于存储各类型URL的布隆过滤器;存储模块,用于根据各URL的类型,将所述URL存储在对应的所述布隆过滤器中。
6.根据权利要求5所述的URL存储设备,其特征在于,还包括增量更新模块,用于生成增量包,所述增量包中包括所增加的URL的散列值和所增加的URL的类型,所述增量包用于发送至过滤网关设备,以由过滤网关设备根据所述增量包执行更新。
7.根据权利要求6所述的URL存储设备,其特征在于,所述增量更新模块还用于根据增加URL后所述布隆过滤器中的URL数量,检验增加所述URL后所述布隆过滤器的假通过率是否不超过预先设定的最高假通过率;若是,则生成所述增量包;若否,则重新生成布隆过滤器,重新生成的布隆过滤器所占用内存空间为增加URL前布隆过滤器所占用内存空间的两倍。
8.根据权利要求5或6所述的URL存储设备,其特征在于,还包括删除更新模块,用于生成新布隆过滤器和删除包,所述删除包中包括执行删除更新前的所述布隆过滤器与所述新布隆过滤器在相同位置出现不同值的位置和删除的URL的类型,所述删除包用于发送至过滤网关设备,以由过滤网关设备根据所述删除包执行更新。
9.一种网页过滤方法,其特征在于,包括步骤S21,过滤网关设备从如权利要求5至8任一所述的URL存储设备获取分类存储有 URL的布隆过滤器;步骤S22,所述过滤网关设备根据所述布隆过滤器中存储的URL和所述URL的类型对网页进行过滤。
10.根据权利要求9所述的网页过滤方法,其特征在于,还包括步骤S23,所述过滤网关设备从所述URL存储设备获取增量包,并根据所述增量包执行增量更新,所述增量包中包括增加的URL的散列值和所述增加的URL的类型。
11.根据权利要求8或9所述的网页过滤方法,其特征在于,还包括步骤S24,所述过滤网关设备从所述URL存储设备获取删除包,根据所述删除包执行删除更新,所述删除包中包括URL存储设备在删除URL前的所述布隆过滤器与删除URL后的新布隆过滤器在相同位置出现不同值的位置和所述删除的URL的类型。
12.一种过滤网关设备,其特征在于,包括获取模块,用于从URL存储设备获取分类存储有URL的布隆过滤器;过滤模块,用于根据所述布隆过滤器中存储的URL和所述URL的类型对网页进行过滤。
13.根据权利要求12所述的过滤网关设备,其特征在于,还包括增量更新模块,用于从所述URL存储设备获取增量包,并根据所述增量包执行增量更新,所述增量包中包括增加的URL的散列值和所述增加的URL的类型。
14.根据权利要求12或13所述的过滤网关设备,其特征在于,还包括删除更新模块,从所述URL存储设备获取删除包,根据所述删除包执行删除更新,所述删除包中包括URL存储设备在删除URL前的所述布隆过滤器与删除URL后的新布隆过滤器在相同位置出现不同值的位置和所述删除的URL的类型。
15.一种网页过滤系统,其特征在于,包括如权利要求5至8任一所述的URL存储设备, 和如权利要求12至14任一所述的过滤网关设备。
全文摘要
本发明提供URL存储方法、网页过滤方法、装置及系统。该URL存储方法,包括步骤S11,根据预定分类规则对URL进行分类;步骤S12,分别生成用于存储各类型URL的布隆过滤器;步骤S13,根据各URL的类型,将所述URL存储在对应的所述布隆过滤器中。本发明提供的URL存储方法、网页过滤方法、装置及系统能够在执行网页过滤时提供高效率的URL查询,从而提高网络性能。
文档编号H04L29/06GK102253991SQ20111018796
公开日2011年11月23日 申请日期2011年7月6日 优先权日2011年5月25日
发明者王祖海 申请人:北京星网锐捷网络技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1