专利名称:内容过滤方法和装置的制作方法
技术领域:
本发明实施例涉及数据处理技术,尤其涉及一种内容过滤方法和装置。
背景技术:
互联网作为全球最大的信息中心,正以惊人的速度发展壮大,但是其中的信息良莠不齐,存在为数不少的不良网站、不良资源。另外还存在一些包含恶意软件的可疑网站,会威胁到用户的个人隐私甚至破坏用户的电脑。为避免不良信息的危害,现有技术采用了基于应用层协议的内容过滤技术对网页进行过滤。例如,对于企业网网关来说,可以通过配置过滤策略来过滤某些类型内容的网页,从而达到限制企业网内部用户进行禁止的行为,例如禁止访问不良网站或观看在线电 影等。现有技术典型是通过超文本传输协议(Hyper Text Transfer Protocol,简称HTTP)请求消息中的目标统一资源定位符(Uniform Universal Resource Locator,简称URL)地址来对目标网站进行分类。如果发现网页属于应该过滤的种类,例如色情、暴力等,则把HTTP请求重定向到另外一个提示页面,或者直接把网络连接断开。现有内容过滤技术一般是由用户预先设定规则条件和过滤条件,采用预编译的过滤器对请求打开网页的URL地址与规则条件相匹配,对与规则条件匹配一致的URL地址,再按照过滤条件进行阻断或放行等处理。规则条件例如可以为“if URL含有sina”、“if URL等于画· abc. com”等单个的字符串匹配条件,各条规则条件可以基于确定有限状态自动机(Deterministic Finite-State Automata,简称 DFA)算法形成 DFA 图,各网页地址基于 DFA图进行精确匹配以判断是否与规则条件一致。过滤条件例如可以为“当满足“if URL含有sina"时就执行将网页放行的策略”,或“当满足“if URL等于画· abc. com”时就将该网页阻断或重定向的策略”。所以需要将与规则条件匹配一致的网页地址进一步在过滤条件中匹配,以便确定该执行哪种处理策略。但是,现有技术的这种内容过滤技术存在较大缺陷。对URL地址进行内容过滤采用的规则条件匹配方法是通过采用DFA图进行的,当规则条件的数量太多或者要求支持复杂规则条件配置,例如包括通配符的正则表达式型,诸如*/abc. */news”、“. *\. www\.domain. *\. com”等,则会遇到耗用大量内存的问题。这个是DFA算法的主要缺点,现有技术可以采用压缩的DFA,如D2FA (Delayed DFA)算法代替标准DFA进行匹配,但是会造成匹配性能低下,因为D2FA算法的时间效率比标准DFA低好几倍。所以,如何兼顾内容过滤技术中内存占用量和匹配性能,成为现有技术中需要解决的技术问题。
发明内容
本发明实施例提供一种内容过滤方法和装置,以减小内容过滤的内存占用且获得良好的匹配效果。
本发明实施例提供了一种内容过滤方法,包括从输入的一条或多条规则条件中分别提取关键字;根据提取的关键字对所述一条或多条规则条件划分成一个或多个分组,使得同一分组中的规则条件具有相同的关键字,并为所述提取的关键字预编译分组匹配数据集合;分别为所述提取的关键字中的各关键字对应分组的规则条件预编译精确匹配数据集合;获取待过滤内容;利用所述分组匹配数据集合,对所述待过滤内容进行关键字的匹配,得到匹配到的关键字;利用匹配到的关键字对应分组的规则条件的精确匹配数据集合,对所述待过滤内 容进行规则条件的精确匹配;根据所述精确匹配的匹配结果执行与所述匹配结果对应的过滤策略。本发明实施例还提供了一种内容过滤装置,包括内容获取模块、内容过滤模块和策略实施模块,其中,所述内容获取模块,用于获取待过滤内容;所述内容过滤模块包括关键字提取单元,用于从输入的一条或多条规则条件中分别提取关键字;分组编译单元,用于根据提取的关键字对所述一条或多条规则条件划分成一个或多个分组,使得同一分组中的规则条件具有相同的关键字,并为所述提取的关键字预编译分组匹配数据集合;规则条件编译单元,用于分别为所述提取的关键字中的各关键字对应分组的规则条件预编译精确匹配数据集合;分组匹配单元,用于利用所述分组匹配数据集合,对所述待过滤内容进行关键字的匹配,得到匹配到的关键字;规则条件匹配单元,用于利用匹配到的关键字对应分组的规则条件的精确匹配数据集合,对所述待过滤内容进行规则条件的精确匹配;所述策略实施模块,用于根据所述精确匹配的匹配结果执行与所述匹配结果对应的过滤策略。本发明实施例所提供的内容过滤方法和装置,由于基于关键字对规则条件进行了分组预过滤,所以每组规则条件的数量较少,构造的与每组规则条件对应的精确匹配数据集合所占用内存之和,比将所有规则条件预编译形成的数据集合占用内存要少。而分组预过滤后再基于规则条件的精确匹配,能够保证待过滤内容与规则条件的精确比较,具有较高的匹配准确性。所以本发明实施例的技术方案在占用较少内存的基础上优化了匹配性能,得到了较为准确的匹配结果。
图I为本发明实施例一提供的内容过滤方法的流程图;图2为本发明实施例三提供的内容过滤方法的流程图;图3为本发明实施例四提供的内容过滤方法的流程图4为本发明实施例五提供的内容过滤方法的流程图;图5为本发明实施例五所适用实例的流程图;图6为本发明实施例六提供的内容过滤装置的结构示意图;图7为本发明实施例七提供的内容过滤装置的结构示意图;图8为本发明实施例八提供的内容过滤装置的结构示意图;图9为本发明实施例九所适用的网络架构示意图;图10为本发明实施例九提供的内容过滤方法中提取关键字的过程示意图;
图11为本发明实施例九提供的内容过滤方法中执行过滤流程的示意图;图12为本发明实施例提供的内容过滤方法中分组与算法对应关系示意图;图13为本发明实施例提供的计算机系统的结构示意图;图14为本发明另一实施例提供的计算机系统的结构示意图。
具体实施例方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。实施例一图I为本发明实施例一提供的内容过滤方法的流程图,本实施例的内容过滤方法可适用于各种需要对文本内容进行过滤的场景中,具体可以由软件和/或硬件形式来实现,典型地如基于文本应用层协议执行的网页内容过滤,则可以由集成在网关中的软件来实现。该内容过滤方法主要包括了对规则条件的预编译流程和对待过滤内容的过滤流程,具体包括如下步骤步骤110、从输入的一条或多条规则条件中分别提取关键字;步骤120、根据提取的关键字对所述一条或多条规则条件划分成一个或多个分组,使得同一分组中的规则条件具有相同的关键字,并为所述提取的关键字预编译分组匹配数据集合;步骤130、分别为所述提取的关键字中的各关键字对应分组的规则条件预编译精确匹配数据集合;上述步骤110-130为预编译流程,是对用户输入的各规则条件进行编译处理,以便在执行过滤流程时,能对待过滤内容进行迅速匹配。步骤140、获取待过滤内容;步骤150、利用所述分组匹配数据集合,对所述待过滤内容进行关键字的匹配,得到匹配到的关键字;步骤160、利用匹配到的关键字对应分组的规则条件的精确匹配数据集合,对所述待过滤内容进行规则条件的精确匹配;步骤170、根据所述精确匹配的匹配结果执行与所述匹配结果对应的过滤策略。上述步骤140-170为内容过滤流程,是基于预编译过程构造的匹配数据集合对待过滤内容进行匹配的操作。内容过滤技术中适用于规则条件和过滤规则的匹配数据集合可称为内容过滤规则库,规则条件和过滤规则一般是由管理员等用户动态配置的,而不是由设备提供商定期手动/远程更新的。所以,如何根据用户输入的规则条件和过滤规则自动地构造出高效的内容过滤规则库是实现内容过滤方法的关键问题。通常在实施内容过滤技术时,用户会输入多条规则条件,可采用正则表达式来表示,规则条件一般是文本应用协议中某个字段所匹配的内容。若在过滤流程中需要匹配多个字段,例如,不同的字段可以包括URL地址、内容类型(Content-Type)头域、用户代理(User-Agent)头域等,则可以针对不同字段,为每个字段对应的规则条件分别执行预编译流程。本实施例所执行的预编译流程以一个字段为例进行说明,若为多个字段内容的规则条件则重复执行本实施例的技术方案即可。本实施例的预编译流程中,所提取的关键字是基于预设策略从规则条件中提取的,关键字是能够尽量以少量字符代表该规则条件核心内容的字段。提取满足此要求的关键字的预设策略可以有多种实现方式,将通过后续实施例进行介绍。由于所提取的关键字用于反映规则条件的核心内容,所以基于关键字将规则条件分组,即通过将具有相同关键字的规则条件分为一组来将内容类似的规则条件分在相同组中,所谓相同关键字,并 不严格限定为文字相同,也可以基于预设策略将具有关联的关键字视为具有相同的关键字。随后,一方面为所有关键字预编译一分组匹配数据集合,另一方面为各组规则条件分别预编译一精确匹配数据集合。所谓数据集合即根据某种内容匹配算法预编译数据,能够在进行匹配时快速完成字符串的比对,例如纯字符串匹配算法、非确定有限状态自动机(Nondeterministic Finite-state Automata,简称 NFA)匹配算法、DFA 匹配算法等均可以作为匹配数据集合。分组匹配数据集合和精确匹配数据集合优选均采用能够精确匹配字符串的匹配算法。例如可考虑性能和内存占用的平衡,根据内存规格,一般来说性能越高的算法,消耗更多内存,反之亦然。大部分网络数据是需要经过分组匹配算法处理,而少量数据匹配到分组,进一步进行精确匹配。所以对于关键字的分组匹配算法,可向提高性能方面倾斜,保证迅速匹配获得关键字。对于规则条件的精确匹配算法,可向内存占用少的方向倾斜,以避免规则条件的大量增加占用过多内存。基于预编译流程所构造的分组匹配数据集合和精确匹配数据集合,当执行过滤流程时,首先将待过滤内容利用分组匹配数据集合进行关键字的匹配,识别待过滤内容中是否包含关键字,以及包含哪个关键字。当匹配到包含某个关键字时,则将该待过滤内容利用所匹配到关键字对应组的精确匹配数据集合进行与规则条件的精确匹配。匹配结果是能或不能匹配到规则条件,此匹配结果可以作为后续进行过滤规则识别或执行相应处理策略的依据。当匹配到该待过滤内容不包含关键字时,则显然也与任何规则条件不匹配,可不进行精确匹配,此匹配结果也可以作为执行后续过滤策略的依据。本实施例的技术方案,由于基于关键字对规则条件进行了分组预过滤,所以每组规则条件的数量较少,构造的各个精确匹配数据集合所占用内存之和比所有规则条件编译的数据集合占用内存要少。而分组预过滤后再基于规则条件的精确匹配,能够保证待过滤内容与规则条件的精确比较,具有较高的匹配准确性。所以本实施例的技术方案在占用较少内存的基础上优化了匹配性能,得到了较为准确的匹配结果。在上述实施例的基础上,步骤110提取关键字的操作,还会存在无法按照预设策略提取出关键字的可能,遇到此类情况,可以将无法提取关键字的规则条件丢弃,但优选是执行下述操作当识别出输入的规则条件无法提取关键字时,将该规则条件放入待提示分组,并为所述待提示分组的规则条件预编译精确匹配数据集合,并向用户发出规则条件不良提
/Jn ο相应地,过滤流程中,在利用所述分组匹配数据集合,对所述待过滤内容进行关键字的匹配之后,还包括当待过滤内容未匹配到关键字时,利用所述待提示分组的规则条 件对应的精确匹配数据集合,对未匹配到关键字的所述待过滤内容进行规则条件的精确匹配。上述出现无法提取关键字的情况,说明包含此类规则条件的待过滤内容无法根据关键字首先进行分组再进行精确匹配,只能进行完全的精确匹配。将不包含关键字的待过滤内容全部进行精确匹配能够进一步保证所有过滤的准确性,但这将是不利于减少内存的,同时,此类规则条件的精确匹配性能通常也低于分组匹配,因而对时间性能消耗较大。所以出现此类情况可以向用户发出规则条件不良提示,告知此类规则条件将加重系统的时间和空间性能的负担,应尽量避免设置此类规则条件。本实施例中,获取待过滤内容可以是对接收到的数据包采用深度报文识别(De印Packet Inspection,简称DPI)技术进行协议识别,一般来说,进行内容过滤的文本类协议类型包括HTTP、会话初始化协议(Session Initiation Protocol,简称SIP)、实时流传输协议(Real Time Streaming Protocol,简称RTSP)等协议类型;基于识别到的协议,对数据包进行字段解析,以获取至少一个预设字段,各预设字段分别作为待过滤内容,以便分别执行后续的分组匹配、精确匹配和过滤匹配操作。其中,所述过滤规则由一条或多条规则条件组合而成,且所述过滤规则由对应于一个或多个预设字段的一条或多条规则条件组合而成。例如,预设字段可以包括HTTP协议数据包中的HTTP消息的请求方法、请求URL、内容类型(Content-Type)头域、用户代理(User-Agent)头域等。实施例二本发明实施例二提供的内容过滤方法,可以以上述实施例为基础,进一步改进了过滤规则的预编译和过滤过程。在上述实施例中,过滤规则的预编译和过滤可以基于多种技术执行,例如,匹配到规则条件后记录对应的标识,然后基于标识在各条过滤规则中分别匹配适用于何种过滤规则,而后执行相应的过滤策略。或者采用树形结构构造各条过滤规贝U,将匹配到的规则条件在树形结构中匹配。本实施例提供了另一种优选的过滤规则匹配方案,在预编译流程的任意时刻,执行如下步骤为所述一条或多条规则条件分别分配唯一的条件标识,为过滤规则预编译过滤匹配数据集合,其中,所述过滤规则由所述一条或多条规则条件组合而成,且利用所述一条或多条规则条件的条件标识作为字符来表达所述过滤规则,即具体是将字符形式表达的过滤规则预编译成过滤匹配数据集合,例如DFA、D2FA状态机等;则在过滤流程中,在根据所述精确匹配的匹配结果执行与所述匹配结果对应的过滤策略包括利用所述过滤匹配数据集合,将待过滤内容精确匹配到的规则条件的条件标识作为字符,对所述字符进行过滤规则的匹配,所述待过滤内容精确匹配到的规则条件由所述对待过滤内容进行规则条件的精确匹配得到。过滤规则通常由一条或多个规则条件组成,当这些规则条件都被待过滤内容满足时,才算过滤规则匹配成功,会对应执行相应的过滤策略,例如网页重定向到一个提示页面,告知用户其请求已经被阻止;直接丢弃网页并重置客户端连接;放行网页等过滤策略。本实施例将规则条件的条件标识作为字符,则过滤规则的形式为条件标识构成的字符串,即将条件规则的条件标识转换为正则表达式,能够将多条过滤规则进行统一的预编译,实现多模匹配,而后通过一次的匹配即可得出待过滤内容符合哪条过滤规则,无需多次查询,优化了过滤性能。
下面提供实例来说明。假设过滤规则可以为“ If domain= “www\. porn. *\.com,,and (User—Agent= “ 氺Chrome,,or User—Agent= “ 氺Firefox,,) and Content-Type=Anythen Redirect. ”,其含义是,如果使用“Chrome”或者“Firefox”浏览器访问“www\.porn. *\. com”成人网站,那么重定向此消息到一个提示已被过滤网页。“Content-Type”可以是任意内容,此处可以省略,仅为解释方案思想而保留。假设各规则条件的条件标识如下“www\. porn. *\· com” =\x87“· *Chrome” =\x91“· *Firefox” =\xl3则可以将过滤规则直接转换成正则表达式“~\x87(\x911 \xl3). ”如果有多条过滤规则,则同理都编译成一起,组成过滤匹配数据集合,例如一个DFA或D2FA状态机,进行匹配的时候,按照过滤规则预定义的顺序执行第一个待过滤内容是“Domain”字段,记录待过滤内容匹配到的规则条件的条件标识;第二个待过滤内容是“User-Agent”字段,记录待过滤内容匹配到的规则条件的条件标识;第三个待过滤内容是“Content-Type”字段,记录待过滤内容匹配到的规则条件的条件标识,注意正则表达式最后一个字符是”,表示任意;而后利用过滤匹配数据集合,将匹配到的条件标识进行过滤规则的匹配,即可获知该执行何种过滤策略。这样,如果有多条过滤规则需要匹配,仅需要按照顺序将各条件标识进行一次匹配即可,不必逐条匹配,性能显著提高。同时,可以采用D2FA而不是DFA以节约内存。当条件标识的数量大于255,即单个字符无法作为条件标识时,可以使所有规则条件都采用双字节条件标识,例如下文第三条条件标识是525,即十六进制0X020d时。“www\. porn. *\· com” =\x87“ · ^Chrome ” =\x91“· *Firefox” =\x02\x0d
过滤规则的表达式则转换为,“~\x00\x87\x00\x91\x02\x0d. · ”实施例三图2为本发明实施例三提供的内容过滤方法的流程图。在上述实施例中介绍了在初始阶段对用户输入的规则条件和过滤规则进行的预编译处理,实际应用中,用户可以随时新增、删除和更改规则条件和过滤规则,更改操作相当于先删除再新增的操作。本实施例主要优化新增规则条件的操作,则上述内容过滤方法进一步可执行如下操作步骤210、当获取到新增的规则条件时,从新增的规则条件中提取关键字;步骤220、根据从新增的规则条件中提取的关键字为新增的规则条件查找或创建对应的分组,并重新编译分组匹配数据集合;
本步骤具体可以首先在已有分组中查找是否存在对应的关键字,若查找到没有对应的关键字,则为该关键字创建新的分组,并重新编译分组匹配数据集合,没查找到有对应的关键字,则无需重新编译分组匹配数据集合。步骤230、根据所述新增的规则条件预编译对应分组的规则条件的精确匹配数据
集合;该步骤的操作区分针对已有分组和新建分组的情况,进行重新编译。对于采用不同算法实现的数据集合可有不用的编译方法,如此分组采用DFA把所有组内规则条件编译成一个状态机,则必须重新编译整个DFA状态机;若此分组采用逐条单模匹配,则只需要编译新增的规则条件,并添加到匹配链中去。步骤240、为新增的规则条件分配条件标识,并重新编译过滤匹配数据集合。本实施例的技术方案可以使用户灵活地增加新的规则条件,新增规则条件仅需更新分组匹配数据集合、过滤匹配数据集合和一组精确匹配数据集合,若新增规则条件未产生新的关键字,则无需更新分组匹配数据集合,相对于现有技术无需对所有预编译数据集合进行调整。实施例四图3为本发明实施例四提供的内容过滤方法的流程图。本实施例以上述实施例为基础,进一步优化删除规则条件的操作过程。该内容过滤方法还包括如下步骤步骤310、根据输入的规则条件删除指令,确定待删除的规则条件或待删除规则条件对应的条件标识,从待删除规则条件中提取关键字;步骤320、根据从待删除规则条件中提取的关键字更新分组匹配数据集合;步骤330、如果需删除所述待删除规则条件,则对从待删除规则条件中提取的关键字的对应分组的规则条件重新编译精确匹配数据集合,以删除所述待删除规则条件;当然,若识别到该关键字的对应组中不存在规则条件了,则删除该组的精确匹配数据集合,同时删除该关键字,并重新编译分组匹配数据集合;步骤340、如果需删除所述待删除规则条件对应的条件标识,则重新编译所述过滤匹配数据集合,以删除所述待删除规则条件对应的条件标识。与实施例三类似,本实施例可灵活删除规则条件,且无需对所有预编译数据集合进行调整。过滤规则的新增、删除和更改与规则条件类似,可根据新增的过滤规则或过滤规则删除指令,重新编译过滤匹配数据集合,以新增或删除过滤规则。实施例五图4为本发明实施例五提供的内容过滤方法的流程图,在上述实施例所提供的内容过滤方法中均涉及关键字的提取,关键字提取的质量,直接关系到后续分组匹配和精确匹配的性能,以及内容过滤规则库所需占用的内存大小。从输入的一条或多条规则条件中分别提取关键字的操作可以有多种实现方式,例如包括如下步骤步骤410、对输入的规则条件,按照预设划分策略进行字段划分;步骤420、基于预设筛选策略对划分后的字段进行筛选得到所述规则条件的关键字。其中,基于预设筛选策略对划分后的字段进行筛选,得到所述规则条件的关键字的操作优选是执行下述流程 从所述划分的字段中,将与黑名单中字段一致的字段删除;按照记录的字段误命中次数,将误命中次数高于命中门限值的字段删除;针对每个规则条件,在该规则条件的各关键字中选择该关键字分组的规则条件数量最少的字段筛选作为该规则条件的关键字。但,本领域人员可以理解,上述各项也可以独立执行,或以其他顺序执行,还可以增加其他筛选策略,例如将与白名单中字段一致的字段筛选为关键字等。实际应用中,可以根据需要设定多项筛选策略,且其执行顺序不限,可以对划分后的字段进行多轮的筛选,以获取能表述规则条件核心内容的字段。本领域技术人员可以理解,关键字的筛选策略并不限于上述几项。确定优选的筛选策略的依据是关键字的误命中次数越多或误命中率越高,则实际匹配性能越低;分组中规则条件的数量越多,则占用内存越多。所以提取关键字的策略要尽量兼顾匹配性能和内存占用的平衡。除静态设置之外,黑名单、白名单以及误命中次数都可以通过动态统计进行更新,例如在利用匹配到的关键字对应分组的规则条件的精确匹配数据集合,对所述待过滤内容进行规则条件的精确匹配之后,还包括当匹配到关键字的待过滤内容利用所述精确匹配数据集合未匹配到对应的规则条件时,更新该关键字的误命中次数记录;将误命中次数高于设定门限值的关键字加入黑名单。通过根据匹配情况来进行动态统计,能够更新黑名单、白名单、误命中次数的准确性,以优化关键字提取策略的准确性,从而优化内容过滤的匹配性能。优选是可以按照设定周期,以更新后的误命中次数和黑名单等,在已有规则条件中重新执行提取关键字、分组、预编译的操作,以优化预编译的数据集合,获得更优的匹配性能。下面以实例方式详细介绍关键字的提取操作,图5为本发明实施例五所适用实例的流程图。首先在系统中维护一关键字动态统计表,如表I所示,其中的误命中次数在内容过滤方法的运行过程中可进行实时刷新,例如按照设定周期、或按设定的触发条件来实时刷新。表I
权利要求
1.一种内容过滤方法,其特征在于,包括 从输入的一条或多条规则条件中分别提取关键字; 根据提取的关键字对所述一条或多条规则条件划分成一个或多个分组,使得同一分组中的规则条件具有相同的关键字,并为所述提取的关键字预编译分组匹配数据集合; 分别为所述提取的关键字中的各关键字对应分组的规则条件预编译精确匹配数据集合; 获取待过滤内容; 利用所述分组匹配数据集合,对所述待过滤内容进行关键字的匹配,得到匹配到的关键字; 利用匹配到的关键字对应分组的规则条件的精确匹配数据集合,对所述待过滤内容进行规则条件的精确匹配; 根据所述精确匹配的匹配结果执行与所述匹配结果对应的过滤策略。
2.根据权利要求I所述的内容过滤方法,其特征在于,还包括 为所述一条或多条规则条件分别分配唯一的条件标识,为过滤规则预编译过滤匹配数据集合,其中,所述过滤规则由所述一条或多条规则条件组合而成,且利用所述一条或多条规则条件的条件标识作为字符来表达所述过滤规则; 则根据所述精确匹配的匹配结果执行与所述匹配结果对应的过滤策略包括 利用所述过滤匹配数据集合,将待过滤内容精确匹配到的规则条件的条件标识作为字符对所述字符进行过滤规则的匹配,所述待过滤内容精确匹配到的规则条件由所述对待过滤内容进行规则条件的精确匹配得到; 根据所述过滤规则的匹配结果执行与所述匹配结果对应的过滤策略。
3.根据权利要求2所述的内容过滤方法,其特征在于,还包括 当获取到新增的规则条件时,从新增的规则条件中提取关键字; 根据从新增的规则条件中提取的关键字为新增的规则条件查找或创建对应的分组,并重新编译分组匹配数据集合; 根据所述新增的规则条件预编译对应分组的规则条件的精确匹配数据集合; 为所述新增的规则条件分配条件标识,并重新编译过滤匹配数据集合。
4.根据权利要求2所述的内容过滤方法,其特征在于,还包括 根据输入的规则条件删除指令,确定待删除的规则条件或待删除规则条件对应的条件标识,从待删除规则条件中提取关键字; 根据从待删除规则条件中提取的关键字更新分组匹配数据集合; 如果需删除所述待删除规则条件,则对从待删除规则条件中提取的关键字的对应分组的规则条件重新编译精确匹配数据集合,以删除所述待删除规则条件; 如果需删除所述待删除规则条件对应的条件标识,则重新编译所述过滤匹配数据集合,以删除所述待删除规则条件对应的条件标识。
5.根据权利要求1-4任一所述的内容过滤方法,其特征在于,所述从输入的一条或多条规则条件中分别提取关键字包括 对输入的规则条件,按照预设划分策略进行字段划分; 基于预设筛选策略对划分后的字段进行筛选得到所述规则条件的关键字。
6.根据权利要求5所述的内容过滤方法,其特征在于,所述基于预设筛选策略对划分后的字段进行筛选,得到所述规则条件的关键字包括 从所述划分后的字段中,将与黑名单中字段一致的字段删除; 按照记录的字段误命中次数,将误命中次数高于命中门限值的字段删除; 针对每个规则条件,在该规则条件的各关键字中选择该关键字分组的规则条件数量最少的字段筛选作为该规则条件的关键字。
7.根据权利要求6所述的内容过滤方法,其特征在于,在利用匹配到的关键字对应分组的规则条件的精确匹配数据集合,对匹配到关键字的待过滤内容进行规则条件的精确匹配之后,还包括 当匹配到关键字的待过滤内容利用所述精确匹配数据集合未匹配到对应的规则条件时,更新该关键字的误命中次数记录; 将误命中率次数高于设定门限值的关键字加入黑名单。
8.根据权利要求1-4任一所述的内容过滤方法,其特征在于,所述分别为所述提取的关键字中的各关键字对应分组的规则条件预编译精确匹配数据集合包括 对于规则条件的数量小于预配置门限值的分组,为该组规则条件采用非确定有限状态自动机、确定有限状态自动机或者压缩的确定有限状态自动机正则表达式匹配算法预编译精确匹配数据集合,或采用单模字符串匹配算法预编译精确匹配数据集合; 对于规则条件的数量等于或大于预配置门限值的分组,为该组规则条件采用确定有限状态自动机或者压缩的确定有限状态自动机正则表达式匹配算法预编译精确匹配数据集合; 对于包括具有设定复杂定义参数的规则条件的分组,为该组规则条件采用非确定有限状态自动机或者压缩的确定有限状态自动机正则表达式匹配算法预编译精确匹配数据集入口 ο
9.根据权利要求2-4任一所述的内容过滤方法,其特征在于,所述获取待过滤内容包括 对接收到的数据包采用深度报文识别技术进行协议识别; 基于识别到的协议,对所述数据包进行字段解析,以获取至少一个预设字段,将各预设字段分别作为待过滤内容,以便分别执行后续的分组匹配、精确匹配和过滤匹配操作,其中,所述过滤规则由一条或多条规则条件组合而成,且所述过滤规则由对应于一个或多个预设字段的一条或多条规则条件组合而成。
10.根据权利要求1-4任一所述的内容过滤方法,其特征在于,还包括 当识别出输入的规则条件无法提取关键字时,将该规则条件放入待提示分组,并为所述待提示分组的规则条件预编译精确匹配数据集合,并向用户发出规则条件不良提示。
11.根据权利要求10所述的内容过滤方法,其特征在于,在利用所述分组匹配数据集合,对所述待过滤内容进行关键字的匹配之后,还包括 当待过滤内容未匹配到关键字时,利用所述待提示分组的规则条件对应的精确匹配数据集合,对未匹配到关键字的所述待过滤内容进行规则条件的精确匹配。
12.根据权利要求1-4任一所述的内容过滤方法,其特征在于,从输入的一条或多条规则条件中分别提取关键字包括按照设定周期,从已输入的一条或多条规则条件中提取关键字。
13.一种内容过滤装置,其特征在于,包括内容获取模块、内容过滤模块和策略实施模块,其中, 所述内容获取模块,用于获取待过滤内容; 所述内容过滤模块包括 关键字提取单元,用于从输入的一条或多条规则条件中分别提取关键字; 分组编译单元,用于根据提取的关键字对所述一条或多条规则条件划分成一个或多个分组,使得同一分组中的规则条件具有相同的关键字,并为所述提取的关键字预编译分组匹配数据集合; 规则条件编译单元,用于分别为所述提取的关键字中的各关键字对应分组的规则条件预编译精确匹配数据集合; 分组匹配单元,用于利用所述分组匹配数据集合,对所述待过滤内容进行关键字的匹配,得到匹配到的关键字; 规则条件匹配单元,用于利用匹配到的关键字对应分组的规则条件的精确匹配数据集合,对所述待过滤内容进行规则条件的精确匹配; 所述策略实施模块,用于根据所述精确匹配的匹配结果执行与所述匹配结果对应的过滤策略。
14.根据权利要求13所述的内容过滤装置,其特征在于 所述内容过滤模块还包括过滤规则编译单元,用于为所述一条或多条规则条件分别分配唯一的条件标识,为过滤规则预编译过滤匹配数据集合,其中,所述过滤规则由一条或多条规则条件组合而成,且利用所述一条或多条规则条件的条件标识作为字符来表达所述过滤规则; 所述策略实施模块包括 过滤规则匹配单元,用于利用所述过滤匹配数据集合,将待过滤内容精确匹配到的规则条件的条件标识作为字符,对所述字符进行过滤规则的匹配,所述待过滤内容精确匹配到的规则条件由所述对待过滤内容进行规则条件的精确匹配得到; 策略实施单元,用于根据所述过滤规则的匹配结果执行与所述匹配结果对应的过滤策略。
15.根据权利要求13或14所述的内容过滤装置,其特征在于,所述规则条件编译单元还用于当识别出输入的规则条件无法提取关键字时,将该规则条件放入待提示分组,并为所述待提示分组的规则条件预编译精确匹配数据集合,并向用户发出规则条件不良提示。
16.根据权利要求15所述的内容过滤装置,其特征在于,所述规则条件匹配单元还用于当待过滤内容未匹配到关键字时,利用所述待提示分组的规则条件对应的精确匹配数据集合,对未匹配到关键字的所述待过滤内容进行规则条件的精确匹配。
17.根据权利要求13或14所述的内容过滤装置,其特征在于,所述关键字提取单元包括 字段划分子单元,用于对输入的规则条件,按照预设划分策略进行字段划分; 字段筛选子单元,用于基于预设筛选策略对划分后的字段进行筛选,得到所述规则条件的关键字。
18.根据权利要求17所述的内容过滤装置,其特征在于,其中,所述字段筛选子单元具体用于 从所述划分后的字段中,将与黑名单中字段一致的字段删除; 按照记录的字段误命中次数,将误命中率高于命中门限值的字段删除; 针对每个规则条件,在该规则条件的各关键字中选择该关键字分组的规则条件数量最少的字段筛选作为该规则条件的关键字。
19.根据权利要求18所述的内容过滤装置,其特征在于,所述内容过滤模块还包括统计更新单元,所述统计更新单元包括 误命中次数记子单元,用于当匹配到关键字的待过滤内容利用所述精确匹配数据集合 未匹配到对应的规则条件时,更新该关键字的误命中次数记录; 黑名单更新子单元,用于将误命中次数高于设定门限值的关键字加入黑名单。
20.根据权利要求13或14所述的内容过滤装置,其特征在于,所述规则条件编译单元包括 第一编译子单元,用于对于规则条件的数量小于预配置门限值的分组,为该组规则条件采用非确定有限状态自动机确定有限状态自动机或者压缩的确定有限状态自动机正则表达式匹配算法预编译精确匹配数据集合,或采用单模字符串匹配算法预编译精确匹配数据集合; 第二编译子单元,用于对于规则条件的数量等于或大于预配置门限值的分组,为该组规则条件采用确定有限状态自动机或者压缩的确定有限状态自动机正则表达式匹配算法预编译精确匹配数据集合; 第三编译子单元,用于对于包括具有设定复杂定义参数的规则条件的分组,为该组规则条件采用非确定有限状态自动机或者压缩的确定有限状态自动机正则表达式匹配算法预编译精确匹配数据集合。
21.根据权利要求13或14所述的内容过滤装置,其特征在于,所述内容获取模块包括 协议识别单元,用于对接收到的数据包采用深度报文识别技术进行协议识别; 协议解析单元,用于基于识别到的协议,对所述数据包进行字段解析,以获取至少一个预设字段,将各预设字段分别作为待过滤内容,以便分别执行后续的分组匹配、精确匹配和过滤匹配操作,其中,所述过滤规则由一条或多条规则条件组合而成,且所述过滤规则由对应于一个或多个预设字段的一条或多条规则条件组合而成。
全文摘要
本发明实施例提供一种内容过滤方法和装置。该方法包括从输入的规则条件中分别提取关键字;根据提取的关键字对规则条件划分成一个或多个分组,并为提取的关键字预编译分组匹配数据集合;分别为提取的关键字对应分组的规则条件预编译精确匹配数据集合;获取待过滤内容;利用分组匹配数据集合,对待过滤内容进行关键字的匹配;利用匹配到的关键字对应分组的规则条件的精确匹配数据集合,对待过滤内容进行规则条件的精确匹配;根据精确匹配的匹配结果执行对应的过滤策略。本发明由于对规则条件进行了分组预过滤,所以每组规则条件的数量较少,占用内存减少。而分组预过滤后再基于规则条件的精确匹配具有较高的匹配准确性。
文档编号H04L29/06GK102857493SQ201210223008
公开日2013年1月2日 申请日期2012年6月30日 优先权日2012年6月30日
发明者尤里·哈桑, 艾维·菲尔, 莫默 申请人:华为技术有限公司