1.一种非法网站过滤方法,其特征在于,包括:
获取建立网站连接的IP地址,确定防火墙内存中匹配有该IP地址且在内存中未保存符合该IP地址的URL时,将保存于所述防火墙内存之外的符合该IP地址的所有URL加载到所述内存中;
在发送URL请求时,判断发送的URL是否与防火墙内存中符合所述IP地址的URL之一匹配,若是,断开连接,否则,允许报文通过防火墙。
2.根据权利要求1所述方法,其特征在于,在将保存于所述防火墙内存之外的符合该IP的所有URL加载到所述内存中之前,还包括:
判断所述防火墙内存使用量是否超过阈值,若是,将内存中使用次数最少的IP地址记录项删除,再执行所述将保存于所述防火墙内存之外的符合该IP的所有URL加载到所述内存中的步骤,否则,直接执行将所述将保存于所述防火墙内存之外的符合该IP的所有URL加载到所述内存中的步骤;
其中,在每次匹配URL成功后,将IP地址记录项的使用计数加一,所述IP地址记录项由一个IP地址及其对应的URL构成。
3.根据权利要求1所述方法,其特征在于,所述保存于所述防火墙内存之外的符合该IP的所有URL是以IP地址为文件名的IP文件形式保存的。
4.根据权利要求1、2或3所述方法,其特征在于,当确定防火墙内存中既匹配有所述IP地址又保存了符合所述IP地址的URL时,在发送URL请求时,直接执行以下步骤:判断发送的URL是否与防火墙内存中符合所述IP地址的URL之一匹配,若是,断开连接,否则,允许报文通过防火墙。
5.根据权利要求4所述方法,其特征在于,
在所述防火墙内存初始化时,将IP地址集合加载到内存中,并在内存中设置一个空的动态地址表,该动态地址表用于保存加载的URL。
6.根据权利要求4所述方法,其特征在于,在成功匹配IP地址后,将IP连接设置检测标记,后续在发送URL请求时,仅对具有检测标记的IP连接的URL进行匹配。
7.一种非法网站过滤装置,其特征在于,包括:
IP地址获取单元,用于获取网站建立连接的IP地址;
IP地址匹配单元,用于将建立连接的IP地址到防火墙内存中进行匹配;
URL加载单元,用于当所述IP地址匹配单元确定防火墙内存中仅匹配有该IP地址且内存中没有保存符合该IP地址的URL时,将保存于所述防火墙内存之外的符合该IP地址的所有URL加载到所述内存中;
URL匹配单元,在匹配IP地址基础上,在发送URL请求时,判断发送的URL是否与防火墙内存中保存的所述IP地址所符合的URL之一匹配;
连接操作单元,用于在URL匹配单元确定URL匹配时,断开连接,在URL匹配单元确定URL不匹配时,允许报文通过防火墙。
8.根据权利要求7所述装置,其特征在于,还包括:
IP地址记录项使用统计单元,用于在所述URL匹配单元每次匹配URL成功后,将IP地址记录项的使用计数加一,其中,所述IP地址记录项由一个IP地址及其对应的URL构成;
内存使用量判断单元,用于判断所述防火墙内存使用量是否超过阈值;
内存释放单元,用于在内存使用量超过阈值时,将内存中使用次数最少的IP地址记录项删除,再启动所述URL加载单元加载URL,在内存使用量未超过阈值时,直接启动所述URL加载单元加载URL。
9.根据权利要求7所述装置,其特征在于,还包括:
IP文件存储单元,用于在所述防火墙内存之外以IP文件形式保存IP地址及符合IP地址的URL。
10.根据权利要求7、8或9所述装置,其特征在于,
当IP地址匹配单元确定防火墙内存中既匹配有所述IP地址又保存了符合所述IP地址的URL时,直接启动URL匹配单元和连接操作单元。
非法网站过滤方法及装置\n技术领域\n[0001] 本发明涉及网络安全技术领域,尤其涉及一种非法网站过滤方法及装置。\n背景技术\n[0002] 防火墙指的是一个由软件和硬件设备组合而成、在内网和外部网之间、专用网与公共网之间的界面上构造的保护屏障,是一种保障网络安全的形象说法,它是一种计算机硬件和软件的结合,使因特网与内网之间建立起一个安全网关,从而保护内网免受非法用户侵入。\n[0003] URL(统一资源定位符,Uniform Resource Locator)分类过滤属于防火墙的一个功能模块,其目的是为用户提供拦截互联网不良信息的过滤服务,它包括一个专门的地址库,用来过滤用户访问的非法网站。URL分类过滤功能会在模块初始化时将地址库加载到防火墙内存中,并依靠地址库来对用户访问的网站进行过滤。用户访问网站的过程分为以下几个步骤:(1)会建立一条所访问URL的IP地址的连接;(2)根据已建立的连接发送URL请求;(3)用户会收到要访问的数据,也就是网页中显示的信息。URL分类过滤功能就是针对前两个步骤进行处理的:在建立连接时,从同步报文中提取用户访问URL的IP地址,将其与地址库中的IP地址比对,当IP地址匹配时,再进一步将步骤(2)中的URL与地址库中该IP地址对应的URL进行比对,如果URL匹配成功,则说明用户访问的网站属于地址库中的不良网站,会将此连接断开,用户将无法浏览这个非法网站,否则,允许报文通过防火墙,用户将会浏览到网站信息。\n[0004] 从上面介绍可知,将地址库加载到防火墙内存中是URL分类过滤功能的实现前提。然而,目前非法网站种类繁多,且数目庞大,因此,按照黄、赌、毒、邪教等内容分门别类的存放了IP地址和相关URL的地址库数据量非常大,通常达1G以上,因此,无法一次加载到内存中。\n[0005] 为了解决无法将庞大地址库加载到防火墙内存中的问题,目前已实现的方案中,是仅将地址库中的IP地址加载到防火墙的内存中,仅以IP地址进行比对,从而过滤非法网站。然而,这种仅以IP地址过滤非法网站的方式存在致命的缺陷,仅按照IP地址进行匹配,很容易造成对于用户访问的网站进行误操作,例如,色情网站经常利用更换IP地址的方式来达到逃避监控的目的,如果只对IP地址进行比对,很很能由于原来色情网站的IP地址目前被一个正常网站使用,而导致正常的网站得不到访问。\n发明内容\n[0006] 有鉴于此,本发明提供一种非法网站过滤方法及装置,以解决现有方案仅通过比对IP地址过滤非法网站而存在的对网站进行误操作的问题。\n[0007] 为此,本发明实施例采用如下技术方案:\n[0008] 一种非法网站过滤方法,包括:获取建立网站连接的IP地址,确定防火墙内存中匹配有该IP地址且在内存中未保存符合该IP地址的URL时,将保存于所述防火墙内存之外的符合该IP地址的所有URL加载到所述内存中;在发送URL请求时,判断发送的URL是否与防火墙内存中符合所述IP地址的URL之一匹配,若是,断开连接,否则,允许报文通过防火墙。\n[0009] 在将保存于所述防火墙内存之外的符合该IP的所有URL加载到所述内存中之前,还包括:判断所述防火墙内存使用量是否超过阈值,若是,将内存中使用次数最少的IP地址记录项删除,再执行所述将保存于所述防火墙内存之外的符合该IP的所有URL加载到所述内存中的步骤,否则,直接执行将所述将保存于所述防火墙内存之外的符合该IP的所有URL加载到所述内存中的步骤;其中,在每次匹配URL成功后,将IP地址记录项的使用计数加一,所述IP地址记录项由一个IP地址及其对应的URL构成。\n[0010] 所述保存于所述防火墙内存之外的符合该IP的所有URL是以IP地址为文件名的IP文件形式保存的。\n[0011] 当确定防火墙内存中既匹配有所述IP地址又保存了符合所述IP地址的URL时,在发送URL请求时,直接执行以下步骤:判断发送的URL是否与防火墙内存中符合所述IP地址的URL之一匹配,若是,断开连接,否则,允许报文通过防火墙。\n[0012] 在所述防火墙内存初始化时,将IP地址集合加载到内存中,并在内存中设置一个空的动态地址表,该动态地址表用于保存加载的URL。\n[0013] 在成功匹配IP地址后,将IP连接设置检测标记,后续在发送URL请求时,仅对具有检测标记的IP连接的URL进行匹配。\n[0014] 一种非法网站过滤装置,包括:IP地址获取单元,用于获取网站建立连接的IP地址;IP地址匹配单元,用于将建立连接的IP地址到防火墙内存中进行匹配;URL加载单元,用于当所述IP地址匹配单元确定防火墙内存中仅匹配有该IP地址且内存中没有保存符合该IP地址的URL时,将保存于所述防火墙内存之外的符合该IP地址的所有URL加载到所述内存中;URL匹配单元,在匹配IP地址基础上,在发送URL请求时,判断发送的URL是否与防火墙内存中保存的所述IP地址所符合的URL之一匹配;连接操作单元,用于在URL匹配单元确定URL匹配时,断开连接,在URL匹配单元确定URL不匹配时,允许报文通过防火墙。\n[0015] 上述装置还包括:IP地址记录项使用统计单元,用于在所述URL匹配单元每次匹配URL成功后,将IP地址记录项的使用计数加一,其中,所述IP地址记录项由一个IP地址及其对应的URL构成;。内存使用量判断单元,用于判断所述防火墙内存使用量是否超过阈值;内存释放单元,用于在内存使用量超过阈值时,将内存中使用次数最少的IP地址记录项删除,再启动所述URL加载单元加载URL,在内存使用量未超过阈值时,直接启动所述URL加载单元加载URL。\n[0016] 上述装置还包括:IP文件存储单元,用于在所述防火墙内存之外以IP文件形式保存IP地址及符合IP地址的URL。\n[0017] 其中,当IP地址匹配单元确定防火墙内存中既匹配有所述IP地址又保存了符合所述IP地址的URL时,直接启动URL匹配单元和连接操作单元。\n[0018] 可见,本发明仅在匹配中IP地址后才将URL加载到内存中,由此可克服由于地址库太大而无法一次性加载到内存中的问题,而且,在比对IP地址基础上,后续在发送URL时,再比对URL,可克服仅对IP地址比对而造成的对网站进行误操作的问题,由此实现比较精确的非法网站的过滤。\n[0019] 而且,每次在加载URL之前,通过判断内存使用量,在内存使用量达到阈值时,将使用计数最小的IP地址记录项删除,从而释放一部分内存空间,再加载URL,从而避免内存空间不足。\n[0020] 另外,本发明将原本以类别分类构成的地址库进行改进,将其转换为以IP地址为文件名的IP文件,使其更加容易读取,提高了读取效率,且放置在内存之外的物理存储设备上,不占用内存空间。\n附图说明\n[0021] 图1为本发明实施例一非法网站过滤方法流程图;\n[0022] 图2为本发明动态地址表示意图;\n[0023] 图3为本发明实施例二非法网站过滤方法示意图;\n[0024] 图4为本发明实施例二非法网站过滤方法流程图;\n[0025] 图5为本发明非法网站过滤装置结构示意图。\n具体实施方式\n[0026] 如前所述,现有方案由于无法一次性将数据量庞大的地址库加载到防火墙内存中,仅在内存中保存IP地址,在对网站进行过滤时,仅通过比对IP地址进行,由此导致过滤不准确,有可能对用户访问的网站进行误操作。为此,本发明提出了一种非法网站过滤方法,简言之,首先对建立连接的IP地址进行与内存保存的IP地址匹配,在匹配成功后,再将原本保存于内存之外的该IP地址的URL加载到内存中,在后续发送URL请求时,再根据加载的URL进行进一步的比对,从而精确确定网站是否为非法的。\n[0027] 参见图1,为本发明实施例一非法网站过滤方法流程图,包括:\n[0028] S101:获取建立网站连接的IP地址;\n[0029] S102:确定防火墙内存中匹配有该IP地址且在内存中未保存符合该IP地址的URL时,将保存于所述防火墙内存之外的符合该IP地址的所有URL加载到所述内存中;\n[0030] S103:在发送URL请求时,判断发送的URL是否与防火墙内存中符合所述IP地址的URL之一匹配,若是,断开网站连接,否则,允许报文通过防火墙。\n[0031] 可见,本发明提供的动态加载URL的方案,仅将匹配的IP地址下的URL加载到内存,继而在URL请求过程中,对URL进行匹配,最终确定是否允许访问网络,实现精确的非法网站过滤,避免对网站误操作。\n[0032] 由于同一连接中IP地址的匹配与URL的匹配是异步的,也就是说URL请求会在建立IP连接后才发出,因此,在IP地址匹配过程中动态加载URL机制不会导致处理的延时。\n[0033] 另外,如果在匹配IP地址时,确定防火墙内存中已保存有该匹配I P地址所符合的URL,说明之前已为该IP地址加载过URL,为了避免重复加载而占用内存资源,在这种情况下,无需执行加载URL的步骤,而直接在发送URL时,将发送的URL与内存中保存的该IP地址所符合的URL进行匹配,如果有匹配的URL,说明待访问的网站是非法的,断开连接。\n[0034] 另外,为了进一步减少内存使用量,可对内存中的IP地址记录项的使用次数进行统计和判断,具体地,在每次匹配URL成功后,将IP地址记录项的使用计数加一;在每次加载新URL之前,如果确定目前内存使用量已超过设置的内存使用量最大阈值,则通过删除使用次数最少的IP地址记录项来释放内存空间。其中,IP地址记录项指由一个IP地址及其对应的URL构成的对应表项。\n[0035] 需要说明的是,对于如何实现“确定防火墙内存中匹配有该IP地址且在内存中未保存符合该IP地址的URL”的方式不作限定,只要能够实现即可。优选地,在实际操作中,可通过在防火墙内存中设置两个表并对两个表的查找和加载来实现,具体地,一个是IP地址集合,另一个是动态地址表:在防火墙内存初始化时,将IP地址集合加载到内存中,并在内存中设置一个空的动态地址表,该动态地址表用于保存每次动态加载进内存的URL。在建立连接时,首先将IP地址到动态地址表中匹配,确定是否已存在IP地址记录项,如果有,则无需加载URL,如果没有,则需将IP地址到IP地址集合进行匹配,如果没有匹配中IP地址,则允许访问网站;如果匹配成功,则将URL加载到动态地址表中,并在发送URL阶段,将发送的URL与动态地址表中的URL进行匹配,若匹配中URL,则确定是非法网站,拒绝访问,否则,建立网站连接。\n[0036] 下面结合附图具体描述这种以IP地址集合和动态地址表实现的本发明实施例二。\n[0037] 动态地址是用来描述地址库中的IP地址和URL的,每一个命中的IP地址,都会动态的在内存中建立一个记录项,它包括一个IP地址和一组URL集合。为了处理这些被匹配IP地址的URL,需要一个动态地址表来记录这些IP地址在地址库中的URL,动态地址表是一个通过哈希索引的双向链表数组。通过对IP地址进行哈希计算,得到动态地址表的双向链表数组的下标。之后进行双向链表的遍历查找,典型的动态地址表如图2所示。如图2,不同的IP地址,是有可能hash到同一个下标的数组中,因此需要用链表将两个不同的IP地址记录项链起来。动态地址表在防火墙启动时会初始化为一个空表,当有IP地址被匹配中时,会动态的将符合该IP地址的URL加到动态地址表中。\n[0038] 如前所述,本发明目的之一是既可以加载IP地址、URL,使用户访问的网站得到有效的匹配,又不因加载URL导致内存的不足。关键在于改变以前一次加载所有地址库或只加载IP地址的方法,转而动态的加载匹配中的URL选项,利用容量较大的物理存储设备存储地址库,容量有限的内存只存储部分地址库的内容。\n[0039] 为了更有效率的处理,首先需要将URL分类过滤地址库转换成以IP地址为文件名的库文件,文件中包含的是URL分类过滤地址库中符合该IP地址的所有URL。在防火墙初始化时,只加载IP地址集合,将动态地址表初始化为一个空表。同时为了处理动态地址表占用内存的极限情况,使用一个阈值用来限制动态地址表使用的内存,如果超过此阈值,将会释放最近最少使用的动态地址记录项。\n[0040] 参见图3,为本发明实施例二示意图,由图3可知,本发明将现有方案中的绿色上网地址库转变为一个以IP地址为文件名的库文件,由此,将原本以网站类别构造的绿色上网地址库简化为一个以IP地址为文件名的库文件,由于直接以IP地址为文件名,因此更容易读取,读取效率更高。而且,将IP文件存放于防火墙内存之外的防火墙物理存储设备中,而不占用内存,仅在匹配中IP地址且动态地址表中没有相关IP地址记录项时,才将对应的IP文件加载到动态地址表中,由此,不但节省了内存,并能实现以IP地址和URL双重比对实现非法网站的过滤,使过滤更加准确。\n[0041] 参见图4,为实施例二流程图,整个流程按照数据处理时间顺序分为两个阶段,第一阶段是在建立IP连接时进行的,包括S401-S409,第二阶段是在发送URL时进行的,包括S410S414。其中,在成功匹配IP地址后,将IP连接设置检测标记,后续在发送URL请求时,仅对具有检测标记的IP连接的URL进行匹配。下面详细介绍。\n[0042] 第一阶段包括:\n[0043] S401:获取SYN(同步)报文中网站的IP地址;\n[0044] S402:在防火墙内存的动态地址表中查询是否已存在该IP地址的IP地址记录项,若是,执行S403,否则,执行S404;\n[0045] S403:查询到的IP地址记录项的使用计数加1,然后执行S408;\n[0046] S404:在IP地址集合中进一步查询IP地址,若查询到,执行S405,否则执行S409;\n[0047] S405:比较当前内存使用量是否达到阈值,若是,执行S406,否则,执行S407;\n[0048] S406:删除动态地址表中使用计数最小的IP地址记录项,然后执行407;\n[0049] S407:根据IP地址查找到包含URL的IP文件,将其加载到动态地址表中,然后执行S408;\n[0050] S408:为该IP连接设置检测标记;\n[0051] S409:为该IP连接设置不检测标记。\n[0052] 执行到S408或S409后,进入第二阶段。\n[0053] 第二阶段包括:\n[0054] S410:建立连接后发送URL;\n[0055] S411:查询连接的检测标记,若标记有检测标记,执行S412,否则,执行S413;\n[0056] S412:将URL与动态地址表中的该IP的URL进行匹配,若匹配到,执行S413,否则,执行S414;\n[0057] S413:确定访问的是非法网站,断开连接;\n[0058] S414:允许报文通过防火墙。\n[0059] 至此,整个流程结束。\n[0060] 与上述方法相对应,本发明还提供一种非法网站过滤装置,该装置由软件、硬件或软硬件结合实现,具体地,该装置可以是指位于防火墙内部的功能实体,也可以是指防火墙设备本身。\n[0061] 参见图5,该装置包括:\n[0062] IP地址获取单元501,用于获取网站建立连接的IP地址;\n[0063] IP地址匹配单元502,用于将建立连接的IP地址到防火墙内存中进行匹配;\n[0064] URL加载单元503,用于当IP地址匹配单元502确定防火墙内存中仅匹配有该IP地址且确定内存中没有保存符合该IP地址的URL时,将保存于所述防火墙内存之外的符合该IP地址的所有URL加载到所述内存中;\n[0065] URL匹配单元504,在IP地址匹配单元502匹配到IP地址后,在发送URL请求时,判断发送的URL是否与防火墙内存中保存的所述IP地址所符合的URL之一匹配;\n[0066] 连接操作单元505,用于在URL匹配单元504确定URL匹配时,断开连接,在URL匹配单元确定URL不匹配时,允许报文通过防火墙。\n[0067] 优选地,该装置还包括:\n[0068] IP地址记录项使用统计单元506,用于在URL匹配单元504每次匹配URL成功后,将IP地址记录项的使用计数加一,其中,所述IP地址记录项由一个IP地址及其对应的URL构成;。\n[0069] 内存使用量判断单元507,用于判断所述防火墙内存使用量是否超过阈值;\n[0070] 内存释放单元508,用于在内存使用量超过阈值时,将内存中使用次数最少的IP地址记录项删除,再启动URL加载单元503加载URL,在内存使用量未超过阈值时,直接启动URL加载单元503加载URL。\n[0071] 优选地,该装置还包括:\n[0072] IP文件存储单元509,用于在所述防火墙内存之外以IP文件形式保存IP地址及符合IP地址的URL。URL加载单元503是从IP文件存储单元509获取并加载URL的。\n[0073] 其中,\n[0074] 当IP地址匹配单元502确定防火墙内存中既匹配有所述IP地址又保存了符合所述IP地址的URL时,直接启动URL匹配单元504和连接操作单元505。\n[0075] 该装置中涉及的具体实现细节请参见方法实施例,不作赘述。\n[0076] 可见,本发明仅在匹配中IP地址后才将URL加载到内存中,由此可克服由于地址库太大而无法一次性加载到内存中的问题,而且,在比对IP地址基础上,后续在发送URL时,再比对URL,由此实现比较精确的非法网站的过滤。\n[0077] 而且,每次在加载URL之前,通过判断内存使用量,在内存使用量达到阈值时,将使用计数最小的IP地址记录项删除,从而释放一部分内存空间,再加载URL,从而避免内存空间不足。\n[0078] 另外,本发明将原本以类别分类构成的地址库进行改进,将其转换为以IP地址为文件名的IP文件,使其更加容易读取,提高了读取效率,且放置在内存之外的物理存储设备上,不占用内存空间。\n[0079] 本领域普通技术人员可以理解,实现上述实施例的方法的过程可以通过程序指令相关的硬件来完成,所述的程序可以存储于可读取存储介质中,该程序在执行时执行上述方法中的对应步骤。所述的存储介质可以如:ROM/RAM、磁碟、光盘等。\n[0080] 以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
法律信息
- 2020-01-10
未缴年费专利权终止
IPC(主分类): H04L 29/06
专利号: ZL 201010100339.0
申请日: 2010.01.22
授权公告日: 2012.09.19
- 2012-09-19
- 2010-09-22
实质审查的生效
IPC(主分类): H04L 29/06
专利申请号: 201010100339.0
申请日: 2010.01.22
- 2010-08-04
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2003-04-16
|
2001-09-26
| | |
2
| |
2008-07-02
|
2006-12-29
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |