发明名称 一种用于URL过滤系统的URL查找方法
摘要 本发明涉及网络信息安全技术领域,具体涉及一种统一资源定位符(Uniform Resource Locator,URL)的查找方法。本发明将已有URL查找方法中的哈希方法与多字符串匹配的方法相结合,提出一种能很好的满足URL过滤系统性能和功能需求的URL查找方法。与已有查找方法相比,本发明的一种用于URL过滤系统的URL查找方法查找速度快、性能稳定;存储效率高,能满足不断增大的URL黑名单的存储要求;支持前缀匹配。本发明适用于URL过滤系统,能够方便的实现对用户上网行为的有效控制,还可以应用于其他网络应用,如搜索引擎、web缓存、第七层交换等。
申请公布号 CN101605129B 申请公布日期 2012.02.01
申请号 CN200910087509.3 申请日期 2009.06.23
申请人 北京理工大学 发明人 嵩天;周舟;贾云得
分类号 H04L29/06(2006.01)I;H04L9/36(2006.01)I 主分类号 H04L29/06(2006.01)I
代理机构 北京理工大学专利中心 11120 代理人 张利萍
主权项 一种用于URL过滤系统的URL查找方法,其特征在于:该方法将已有URL查找方法中的哈希方法与多字符串匹配的方法相结合,其具体步骤如下:步骤一、压缩URL黑名单首先,将URL黑名单进行压缩,具体操作步骤如下:第(1)步:基于URL语法格式,根据分隔符“://”和“/”,将原始的URL分解成scheme子项、host子项以及path子项,其中path子项为空或多项;第(2)步:将第(1)步分解出的每个变长的host子项以及path子项,利用c位的哈希函数压缩成c/8个字节的字符串;此处忽略scheme子项,即不对scheme子项进行计算;第(3)步:将压缩后的各个子项按原有次序连接成一个字符串并存储,用其代替原始的URL;对黑名单中的每一个URL都采用上述(1)~(3)步进行处理,得到压缩后的黑名单;步骤二、为压缩后的URL黑名单建立一个后缀表和一个前缀表在步骤一的基础上,为压缩后的URL黑名单建立一个后缀表和一个前缀表,具体操作步骤如下:首先计算压缩后的黑名单中URL的最短长度,记为m;然后对所有压缩后的URL的前m个字符建立一个后缀表,记为SUFFIX,以及一个前缀表,记为PREFIX;后缀表和前缀表的建立方法采用Wu‑Manber方法中的哈希表以及前缀表的建立方法;后缀表的每个表项指向最后B个字符被哈希到该表项的URL,如果有多个URL被哈希到同一表项,则采用链式存储结构;前缀表存储的是每个模式前B’个字符的哈希值;B和B’为正整数,其值根据实验情况择优选择;建立后缀表和前缀表所用到的哈希函数可根据不同情况进行选择;步骤三、查找请求URL在步骤二的基础上,判断一个请求的URL是否在黑名单中,具体操作步骤如下:第(1)步:使用步骤一中的压缩步骤将请求URL压缩成(c/8)*n个字节的字符串,n是分解出的URL子项的数目;第(2)步:判断(c/8)*n的值是否小于m,如果小于则报告“未发现”,并结束过程;否则转到第(3)步;第(3)步:使用步骤二建立后缀表所用到的哈希函数,计算压缩后的请求URL中B个字符,即从第m‑B+1个字符到第m个字符的哈希值h;第(4)步:使用步骤二建立前缀表所用到的哈希函数,计算压缩后的请求URL前B’个字符的哈希值,记为“URL前缀”;第(5)步:判断SUFFIX[h]指针指向的URL是否为空,如果为空,则报告“非发现”,并结束过程;否则,转到第(6)步;第(6)步:检查SUFFIX[h]指针指向的URL在PREFIX表中的值是否等于“URL前缀”;如果不相等,转到第(7)步;如果相等,则将该URL与压缩后的请求URL进行逐个字符的比较,如果压缩后的请求URL的前缀与SUFFIX[h]指针指向的URL完全匹配,则报告“发现”,并结束过程;否则,转到第(7)步;第(7)步:移动SUFFIX[h]指针,指向下一个URL,判断是否为空,如果为空,则报告“未发现”,并结束过程;否则,转到第(6)步。
地址 100081 北京市海淀区中关村南大街5号