CN107590258A - 关键字匹配方法及装置 - Google Patents
关键字匹配方法及装置 Download PDFInfo
- Publication number
- CN107590258A CN107590258A CN201710856489.6A CN201710856489A CN107590258A CN 107590258 A CN107590258 A CN 107590258A CN 201710856489 A CN201710856489 A CN 201710856489A CN 107590258 A CN107590258 A CN 107590258A
- Authority
- CN
- China
- Prior art keywords
- keyword
- dictionary tree
- character
- measured
- branch
- 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.)
- Granted
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种关键字匹配方法及装置,涉及数据解析技术领域。方法包括:解析流量数据,获取流量数据中的待测关键字;判断待测关键字中的多个字符是否均对应在预先设定的目标字典树的一分支中,在为是时,获取流量数据中与待测关键字对应的数据信息,其中,分支包括多个节点,每个节点对应一字符。通过字典树中每个节点与其他节点建立链接的导向功能,避免了待测关键字的逐一匹配,极大的降低了运算,同时也降低了对设备的硬软件要求,使得其实际应用不再受限。
Description
技术领域
本发明涉及数据解析技术领域,具体而言,涉及一种关键字匹配方法及装置。
背景技术
随着网络的日益普及,利用网络实施犯罪的新型网络违法与行为也随之增多。
网络安全审计系统用于为互联网行为提供有效的行为审计、内容审计等相关审计功能,以实现从管理上为互联网提供有效监督、预防、制止数据泄密,并提供完整的上网记录,便于信息追踪,系统安全管理和防范。在实际的网络环境中,大多数的业务流量都是HTTP协议(HyperText Transfer Protocol,超文本传输协议),因此HTTP协议的解析对于审计系统显得尤为重要。但在现有的HTTP协议解析中,其通过将解析得到的关键字字符串与数据库中数据一一比对,从而实现网络安全审计,但该方式运算量大,对设备的硬软件要求高,导致其实际应用受到限制。
发明内容
有鉴于此,本发明的目的在于提供一种关键字匹配方法及装置,其能够有效改善上述问题。
本发明实施例的实现方式如下:
第一方面,本发明实施例提供了一种关键字匹配方法。所述方法包括:解析流量数据,获取所述流量数据中的待测关键字;判断所述待测关键字中的多个字符是否均对应在预先设定的目标字典树的一分支中,在为是时,获取所述流量数据中与所述待测关键字对应的数据信息,其中,所述分支包括多个节点,每个所述节点对应一所述字符。
第二方面,本发明实施例提供了一种关键字匹配装置。所述装置包括:解析获取模块,用于解析流量数据,获取所述流量数据中的待测关键字。匹配处理模块,用于判断所述待测关键字中的多个字符是否均对应在预先设定的目标字典树的一分支中,在为是时,获取所述流量数据中与所述待测关键字对应的数据信息。
本发明实施例的有益效果是:
通过将获取的待测关键字与预先设置的字典树匹配,并判断该待测关键字是否对应在目标字典树的一分支中,在为是时,则获取流量数据中与待测关键字对应的数据信息,进而通过获取的数据信息实现网络安全审计。因此,通过字典树中每个节点与其他节点建立链接的导向功能,避免了待测关键字的逐一匹配,极大的降低了运算,同时也降低了对设备的硬软件要求,使得其实际应用不再受限。
本发明的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明实施例而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。通过附图所示,本发明的上述及其余目的、特征和优势将更加清晰。在全部附图中相同的附图标记指示相同的部分。并未刻意按实际尺寸等比例缩放绘制附图,重点在于示出本发明的主旨。
图1示出了本发明实施例提供的一种关键字匹配系统的结构框图;
图2示出了本发明第一实施例提供的一种关键字匹配方法的第一流程图;
图3示出了本发明第一实施例提供的一种关键字匹配方法的第一流程图中步骤S200的方法子流程图;
图4示出了本发明第一实施例提供的一种关键字匹配方法的第二流程图;
图5示出了本发明第一实施例提供的一种关键字匹配方法的第二流程图中步骤S500的方法子流程图;
图6示出了本发明第二实施例提供的一种关键字匹配装置的第一结构框图;
图7示出了本发明第二实施例提供的一种关键字匹配装置的第一结构框图中模型建立模块的结构框图;
图8示出了本发明第二实施例提供的一种关键字匹配装置的第二结构框图;
图9示出了本发明第二实施例提供的一种关键字匹配装置的第二结构框图中匹配处理模块的结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本发明的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“安装”、“相连”、“连接”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
请参阅图1,图1是关键字匹配系统10的方框示意图。所述关键字匹配系统10包括:关键字匹配装置、存储器101、存储控制器102、处理器103、外设接口104、输入输出单元105、显示单元106。
所述存储器101、存储控制器102、处理器103、外设接口104、输入输出单元105、显示单元106,各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述弹幕数据展示装置包括至少一个可以软件或固件(firmware)的形式存储于所述存储器中或固化在所述关键字匹配系统10的操作系统中的软件功能模块。所述处理器103用于执行存储器101中存储的可执行模块,例如所述关键字匹配装置包括的软件功能模块或计算机程序。
其中,存储器101可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。其中,存储器101用于存储程序,所述处理器103在接收到执行指令后,执行所述程序,后续本发明实施例任一实施例揭示的过程定义的关键字匹配系统10所执行的方法可以应用于处理器103中,或者由处理器103实现。
处理器103可以是一种集成电路芯片,具有信号的处理能力。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(NetworkProcessor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器103可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述外设接口104将各种输入输出单元105耦合至处理器103以及存储器101。在一些实施例中,外设接口,处理器以及存储控制器可以在单个芯片中实现。在其他一些实例中,他们可以分别由独立的芯片实现。
输入输出单元105用于提供给用户输入数据实现用户与数据采集终端的交互。所述输入输出单元可以是,但不限于,鼠标和键盘等。
显示单元106在所述移动终端与用户之间提供一个交互界面,例如用户操作界面,或用于显示图像数据给用户参考。在本实施例中,所述显示单元可以是液晶显示器或触控显示器。若为触控显示器,其可为支持单点和多点触控操作的电容式触控屏或电阻式触控屏等。支持单点和多点触控操作是指触控显示器能感应到来自该触控显示器上一个或多个位置处同时产生的触控操作,并将该感应到的触控操作交由处理器进行计算和处理。
第一实施例
在本实施例中,在实现通过对基于HTTP协议的流量数据进行解析,以得到关键字,并对关键字进行匹配以实现网络安全审计时,其需要预先在关键字匹配系统中建立关键字匹配所需的数据库。
请参阅图2,本发明第一实施例提供了一种关键字匹配方法,该关键字匹配方法应用于关键字匹配系统,该关键字匹配方法包括:步骤S100、步骤S200和步骤S300。
步骤S100:获取并解析多个预存关键字。
在建立数据库时,关键字匹配系统首先需要获取多个预存关键字。获取多个预存关键字的方式可以为操作人员将多个预存关键字存储到关键字匹配系统,但并不限定。之后,关键字匹配系统再基于操作人员的操作建立每个预存关键字与回调函数之间的对应关系。本实施例中,回调函数用于调用函数来实现网络安全审计。再进一步的,关键字匹配系统再在内存中分配一定的存储空间,以用于存储之后建立的至少一个字典树。
为便于建立至少一个字典树,关键字匹配系统对获取的多个预存关键字进行解析,按照预先设定的解析格式解析每个预存关键字,以将每个预存关键字转换为关键字匹配系统可识别的结构体进行存储。
此外,为便于获取的多个预存关键字为基于HTTP协议的预存关键字,本实施例中,关键字匹配系统中可预先设置一个第一判断标准,即判断预存关键字的配置信息格式头是否为HTTP字符串标识头,在为是时,则将该预存关键字保留,在为否时,则将该预存关键字跳过。进而最终得到的多个预存关键字均为基于HTTP协议的预存关键字。
步骤S200:根据所述多个预存关键字,按预设规则建立至少一个字典树,其中,所述预设规则为每个所述字典树的一分支中,该所述分支中的多个所述节点与一所述预存关键字中多个字符对应。
将多个预存关键字解析并存储后,关键字匹配系统则可按照预设规则根据多个预存关键字建立至少一个字典树。具体的,每个预存关键字内均包含了多个字符,多个字符按照一定顺序依次排列,其中,每个预存关键字中,排列最靠前字符的为该预存关键字内的首字符。在按照预设规则建立至少一个字典树的过程中,针对每个预存关键字,关键字匹配系统将以预存关键字中的首字符为根节点建立对应该预存关键字的一字典树,并判断该预存关键字的首字符是否与其余的预存关键字的首字符相同。在判定为否时,则该预存关键字建立的一字典树无需在更改。在判定为是时,关键字匹配系统则将首字符相同的至少两个预存关键字所对应的字典树进行组合,即将两个字典树进行组合,以获得组合后的字典数。通过上述的预设规则,关键字匹配则能够建立至少一个字典树。
需要说明的是,字典树包括了多个节点,位于字典树的树根处的节点可以为根节点,其余节点可以为子节点或子节点的分支节点。字典树的根节点对应至少一个预存关键字中的首字符。字典树中的每个子节点与根节点具有链接关系,子节点的分支节点与根节点具有链接关系,或者子节点与子节点也具有链接关系,或者子节点与子节点的分支节点也具有链接关系。字典数的一个分支由具备链接关系的一根节点和至少一个子节点构成,每个分支均对应表示一预存关键字,而每个分支中的根节点对应表示一预存关键字中的首字符,而每个分支中的至少一个子节点则对应表示一预存关键字中除了首字符的其余字符,且至少一个子节点在该字典数中的指向顺序也与其余字符在该预存关键字中的排列顺序相同。
步骤S300:将所述至少一个字典树存储。
关键字匹配系统在建立至少一个字典树之后,则可认为建立了用于后续匹配的数据库,进而将该至少一个字典树存储到内存中,以便于后续流程的执行。
也需要说明的是,建立并存储至少一个字典树的数据库的流程在执行之后,后续匹配的过程调用存储的至少一个字典树即可,其无需再执行该建立并存储至少一个字典树的数据库的流程。
请参阅图3,本发明第一实施例提供了一种关键字匹配方法中,步骤S200的方法子流程包括:步骤210和步骤220。
步骤210:针对每个所述预存关键字,获取所述预存关键字的多个所述字符中的首字符。
关键字匹配系统在根据存储的多个预存关键字建立至少一个字典树时,关键字匹配系统在根据多个预存关键字的存储顺序处理每个预存关键字时,关键字匹配系统首先获取该预存关键字的多个所述字符中的首字符。例如,存储顺序为预存关键字1、预存关键字2,预存关键字1的字符为:ABC,预存关键字2的字符为:CDE。则关键字匹配系统处理到预存关键字2,首先获取预存关键字2的首字符C。
步骤220:针对每个所述预存关键字,判断是否存在所述字符与所述预存关键字中的首字符相同的一目标预存关键字,在为否时,按所述预存关键字的所述多个字符的排列顺序建立对应的一所述字典树,在为是时,将所述预存关键字的所述多个字符按排列顺序,组合到所述目标预存关键字的所述多个字符按排列顺序建立对应的一目标字典树中,获得组合后的所述字典树,以使组合后的所述字典树中每个所述分支均对应一所述预存关键字。
为减小字典树在存储时的所占空间,以及减小运算量,本实施例中,可对字典树进行组合。在针对每个预存关键字,建立每个预存关键字对应一字典树时,关键字匹配系统需要判断该字典树是否可以组合。
本实施例中,由于对每个预存关键字的建立对应的字典树的先后顺序是按照各预存关键字的存储顺序,进而关键字匹配系统判定该当前预存关键字的是否存在可组合预存关键字时,该可组合预存关键字是之前已经建立对应的字典树的预存关键字。进而关键字匹配系统将该当前预存关键字对应的字典树组合到之前的字典树中时,即是对之前的字典树的更新。
在具体的判断处理过程中,关键字匹配系统判断预存关键字中的首字符是否与其余预存关键字中的任意首字符相同。在判定为否时,则可认为该预存关键字可建立对应的一独立的字典树。例如,多个预存关键字中,预存关键字1为:ABC,A为首字符,预存关键字2为:FRE。关键字匹配系统首先基于预存关键字1建立一独立的字典树A→B→C,并通过进一步的判断,再基于预存关键字2建立一独立的字典树F→R→E。
在判定为是时,将之前可组合一预存关键字作为目标预存关键字,并将当前预存关键字的多个字符按排列顺序组合到该目标预存关键字的多个字符按排列顺序建立的一对应的目标字典树中,以获取组合更新后的字典树。并在该预存关键字组合结束后返回一个第一标识数据段以告知该预存关键字组合结束。其中,该组合更新的字典树中的每一分支均对应一预存关键字。具体的,关键字匹配系统首先按目标预存关键字的字符顺序分析该目标预存关键字是哪一个字符与预存关键字中的首字符相同,确定之后,再将预存关键字的多个字符按顺序组合到目标字典树中。
例如,预存关键字1为:ABCD,预存关键字2为:BCF。关键字匹配系统首先已经建立预存关键字1对应的字典树A→B→C→D,该字典树的A作为一根节点。通过进一步的判断,预存关键字2的首字符B与预存关键字1的首字符A不同,则按照预存关键字2的字符顺序创建B→C→F节点,同时将B字符在字典树中对应的节点作为预存关键字2的根节点。
又例如,预存关键字1为:ABCD,预存关键字2为:ABCF。关键字匹配系统首先已经建立预存关键字1对应的字典树A→B→C→D,该字典树的A作为一根节点。通过判断,判定预存关键字2的首字符A与预存关键字1首字符A大小相同,为同样的重复字符,则关键字匹配系统认为可将预存关键字1和预存关键字2组合建立一字典树。由于预存关键字1的首字符为A,而预存关键字2的首字符也为A,则该字典树的A仍作为一根节点。之后,预存关键字2的字符B与预存关键字1的字符B大小相同,为同样的重复字符,并将B跳过。之后,关键字匹配系统进一步判断预存关键字2的字符C与预存关键字1的C字符大小相同,为同样的重复字符,并也将C跳过。之后,关键字匹配系统判断预存关键字2的字符D与预存关键字1的F字符大小不相同,为不同的字符,进而按照预存关键字2的字符顺序将F作为D节点的分支节点跟在CD后面,即F为子节点的分支节点。之后,关键字匹配系统检测到F之后没有数据了,故返回一个第一标识数据段以告知预存关键字2的处理结束。进而预存关键字1和预存关键字2组合形成的一字典数为:A→B→C→D→F。其中,该字典数的分支1为A→B→C→D,其对应预存关键字1,并且A→B,B→C,C→D之间的连接关系为子节点关系;分支2为A→B→C→D→F,其对应预存关键字2并且A→B,B→C,C→D之间的连接关系为子节点关系,D→F之间的连接关系为分支节点关系。
请参阅图4,本发明第一实施例提供了一种关键字匹配方法中,该关键字匹配方法的方法流程还包括:步骤400和步骤500。
步骤400:解析流量数据,获取所述流量数据中的待测关键字。
在解析流量数据之前,需要先获取该流量数据中所对应的流量数据。具体的,关键字匹配系统可采用使用Libpcap软件包进行流量数据捕获。此外,为保证获取的流量数据为基于HTTP协议的流量数据,关键字匹配系统可通过设置抓包时的过滤端口,只获取指定端口的流量数据,进而通过限制端口使得获取的流量数据为HTTP协议的流量数据。其中,该端口可以为80端口,但并不限定。在获取到流量数据后,关键字匹配系统可对该流量数据执行TCP重组,以避免流量数据中的数据混乱。之后,关键字匹配系统基于HTTP协议的解析规则解析该流量数据,以根据流程数据的数据格式将流量数据中的待测关键字解析出来。可以理解到,所获取的待测关键字可以为多个,本实施例将针对其中任意一个待测关键字做详细说明。
此外,为便于获取的多个待测关键字为基于HTTP协议的待测关键字,本实施例中,关键字匹配系统中预先设置了一个第一判断标准,即判断待测关键字的配置信息格式头是否为HTTP字符串标识头,在为是时,则将该待测关键字保留,在为否时,则将该待测关键字跳过。进而最终得到的多个待测关键字为基于HTTP协议的待测关键字。
步骤500:判断所述待测关键字中的多个字符是否均对应在预先设定的目标字典树的一分支中,在为是时,获取所述流量数据中与所述待测关键字对应的数据信息,其中,所述分支包括多个节点,每个所述节点对应一所述字符。
获取到待测关键字后,关键字匹配则需要判断该待测关键字是否与预先设定的目标字典树匹配。本实施例中,待测关键字也包括了多个字符,多个字符按顺序排列构成该待测关键字,其中,位于多个字符首端的字符则为该多个字符中的首字符。若该待测关键字与目标字典树匹配,则待测关键字应当对应在该目标字典树中。由于目标字典树包括了至少一个分支,且每个分支均多个节点构成,即由根节点和至少一个子节点构成,存在匹配时,则该待测关键字的每个字符均与一节点对应匹配,即该待测关键字的首字符与一分支的根节点对应匹配,首字符之后的每一字符也均与分支中对应的一子节点或子节点的分支节点匹配,且该待测关键字的字符顺序也与一分支中节点的顺序对应。
当关键字匹配系统判定待测关键字的首字符和首字符之后的每一字符均对应匹配在一分支中,且该待测关键字多个字符的顺序也与一分支中子节点或节点的分支节点的顺序对应时,关键字匹配系统则判定匹配。之后,关键字匹配系统调用函数,在流量数据中获取到与该待测关键字的数据格式匹配的数据信息,进而操作人员根据该数据信息的内容则可对应的进行网络安全审计。
当关键字匹配系统判定待测关键字中由任意一个字符与目标字典树中的所有分支均不对应时,则关键字匹配系统则判定不匹配,进而将该待测关键字抛掉。
请参阅图5,本发明第一实施例提供了一种关键字匹配方法中,步骤S500的方法子流程包括:步骤S510、步骤S520和步骤S530。
步骤S510:按所述待测关键字中多个所述字符的排列顺序,获取所述待测关键字中的首字符。
关键字匹配系统获取到待测关键字后,关键字匹配系统根据该待测关键字中多个字符的排列顺序,则能够获取待测关键字中位于多个字符首端的首字符。例如,待测关键字为ABC,则关键字匹配系统能够获取到待测关键字中的首字符A。
步骤S520:判断所述首字符是否与预先设定的至少一个字典树中的一字典树对应,在为是时,将所述字典树作为所述目标字典树。
本实施例中,关键字匹配系统中预先存储了至少一个字典树,且每个字典树的根节点与其余字典树的根节点均不相同。为减小匹配时的运算量,关键字匹配系统在获取首字符后,首先根据该首字符去至少一个字典树中确定出根节点与该首字符匹配的字典树。当通过一一匹配,在至少一个字典树没有查找到根节点与该首字符匹配的字典树时,则关键字匹配系统判定该待测关键字不匹配,继而将该待测关键字抛掉。当通过一一匹配,在至少一个字典树查找到根节点与该首字符匹配的目标字典树时,则通过一一匹配,在至少一个字典树没有查找到根节点与该首字符匹配的字典树时,关键字匹配系统则判定该待测关键字可在该根节点匹配的字典树中作进一步的匹配,进而将该字典树作为目标字典树,以便于后续流程的执行。
可以理解到,通过上述的匹配,当一待测关键字的首字符都不匹配时,则说明该待测关键字没有必要再进行后续匹配,进而减少了运算量。
步骤S530:判断所述待测关键字中所述首字符之后的每个所述字符是否均对应在所述目标字典树的一分支中,在为是时,获取所述流量数据中与所述待测关键字对应的所述数据信息。
获取到目标字典树后,关键字匹配系统在该目标字典树对该待测关键字进行进一步的匹配,以判断该待测关键字中在首字符之后的每一字符是否均对应在该目标字典树中。具体的,关键字匹配系统按待测关键字中首字符之后多个字符排列顺序,逐一查找每个字符是否在目标字典树均有一子节点或子节点的分支节点对应匹配。应当理解的是,若该待测关键字对应在目标字典树的一分支中,分支中的子节点或子节点的分支节点与其他子节点是具有链接关系的,继而在匹配过程中,该分支中匹配的每个子节点或子节点的分支节点与匹配的其余子节点是具有链接关系。
在逐一匹配的过程中,关键字匹配系统则逐一判断该待测关键字的首字符之后的每一字符是否存在与目标字典树的一分支中对应位置的子节点或子节点的分支节点不匹配。
在为否时,则判定待测关键字中首字符之后的每个字符均对应在所述目标字典树的一分支中,即该待测关键字的首字符之后的每一字符均与目标字典树的一分支中对应位置的子节点或子节点的分支节点匹配。进而当匹配至关键字匹配系统检测到最后一字符的后一位无数据,且对应分支的最后一节点之后也无数据时,故返回一个第二一标识数据段以告知待测关键字的匹配成功。之后,关键字匹配系统则根据第二一标识数据段调用函数,在流量数据中获取到与该待测关键字的数据格式匹配的数据信息,进而操作人员根据该数据信息的内容则可对应的进行网络安全审计。
例如,目标字典树为A→B→C→D,其包括分支1为A→B→C,分支2为A→B→C→D,待测关键字为ABC。在步骤S530的匹配过程中,关键字匹配系统首先检测到待测关键字的字符B,并判断该字符B与分支1的子节点B的数据相同,并也判断与分支2的子节点B的数据相同,则该字符B匹配。之后,关键字匹配系统检测到待测关键字的字符C,并判断该字符C与分支1的子节点C的数据相同,并也判断与分支2的子节点C的数据相同,则该字符C匹配。之后,关键字匹配系统再检测到待测关键字的字符C之后无数据,且分支1的子节点C之后也无数据,进而也相同,故返回一个第二一标识数据段以告知该待测关键字的匹配成功。
在为是时,则判定待测关键字中首字符之后的有一字符与所述目标字典树的一分支中的任意子节点或子节点的分支节点均不对应匹配,即该待测关键字与目标字典树不匹配。进而关键字匹配系统则判定匹配失败,并该待测关键字抛掉,以继续执行对下一个待测关键字的匹配。
例如,目标字典树为A→B→C→D,其包括分支1为A→B→C,分支2为A→B→C→D,待测关键字为ABE。在步骤S530的匹配过程中,关键字匹配系统首先检测到待测关键字的字符B,并判断该字符B与分支1的子节点B的数据相同,并也判断与分支2的子节点B的数据相同,则该字符B匹配。之后,关键字匹配系统检测到待测关键字的字符E,并判断该字符E与分支1的子节点C的数据不相同,并也判断与分支2的子节点C的数据也不相同,则该字符E不匹配。即判定该待测关键字ABE不匹配,并将其抛掉。
又例如,目标字典树为A→B→C→D,其包括分支1为A→B→C,分支2为A→B→C→D,待测关键字为AB。在步骤S530的匹配过程中,关键字匹配系统首先检测到待测关键字的字符B,并判断该字符B与分支1的子节点B的数据相同,并也判断与分支2的子节点B的数据相同,则该字符B匹配。之后,关键字匹配系统检测到待测关键字的字符B之后一位无数据,进一步判断字符B所在节点的第一标识数据段是否为空,如果不为空则判定该待测关键字AB匹配成功,如果为空则即判定该待测关键字AB不匹配并将其抛掉。
第二实施例
请参阅图6,本发明第二实施例提供了一种关键字匹配装置100,该关键字匹配装置100应用于关键字匹配系统,该关键字匹配装置100包括:
获取解析模块110,用于获取并解析多个预存关键字。
模型建立模块120,用于根据所述多个预存关键字,按预设规则建立至少一个字典树,其中,所述预设规则为每个所述字典树的一分支中,该所述分支中的多个所述节点与一所述预存关键字中多个字符对应。
存储模块130,用于将所述至少一个字典树存储。
请参阅图7,本发明第二实施例中,模型建立模块120包括:
第一模型建立单元121,用于针对每个所述预存关键字,获取所述预存关键字的多个所述字符中的首字符。
第二模型建立单元122,用于针对每个所述预存关键字,判断是否存在所述字符与所述预存关键字中的首字符相同的一目标预存关键字,在为否时,按所述预存关键字的所述多个字符的排列顺序建立对应的一所述字典树,在为是时,将所述预存关键字的所述多个字符按排列顺序,组合到所述目标预存关键字的所述多个字符按排列顺序建立对应的一目标字典树中,获得组合后的所述字典树,以使组合后的所述字典树中每个所述分支均对应一所述预存关键字。
请参阅图8,本发明第二实施例中,该关键字匹配装置100还包括:
解析获取模块140,用于解析流量数据,获取所述流量数据中的待测关键字。
匹配处理模块150,用于判断所述待测关键字中的多个字符是否均对应在预先设定的目标字典树的一分支中,在为是时,获取所述流量数据中与所述待测关键字对应的数据信息,其中,所述分支包括多个节点,每个所述节点对应一所述字符。
请参阅图9,本发明第二实施例中,匹配处理模块150包括:
获取单元151,用于按所述待测关键字中多个所述字符的排列顺序,获取所述待测关键字中的首字符。
判断单元152,用于判断所述首字符是否与预先设定的至少一个字典树中的一字典树对应,在为时是,将所述字典树作为所述目标字典树。
判断处理单元153,用于判断所述待测关键字中所述首字符之后的每个所述字符是否均对应在所述目标字典树的一分支中,在为是时,获取所述流量数据中与所述待测关键字对应的所述数据信息。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
综上所述,本发明实施例提供了一种关键字匹配方法及装置。方法包括:解析流量数据,获取流量数据中的待测关键字;判断待测关键字中的多个字符是否均对应在预先设定的目标字典树的一分支中,在为是时,获取流量数据中与待测关键字对应的数据信息,其中,分支包括多个节点,每个节点对应一字符。
通过将获取的待测关键字与预先设置的字典树匹配,并判断该待测关键字是否对应在目标字典树的一分支中,在为是时,则获取流量数据中与待测关键字对应的数据信息,进而通过获取的数据信息实现网络安全审计。因此,通过字典树中每个节点与其他节点建立链接的导向功能,避免了待测关键字的逐一匹配,极大的降低了运算,同时也降低了对设备的硬软件要求,使得其实际应用不再受限。
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种关键字匹配方法,其特征在于,所述方法包括:
解析流量数据,获取所述流量数据中的待测关键字;
判断所述待测关键字中的多个字符是否均对应在预先设定的目标字典树的一分支中,在为是时,获取所述流量数据中与所述待测关键字对应的数据信息,其中,所述分支包括多个节点,每个所述节点对应一所述字符。
2.根据权利要求1所述的关键字匹配方法,其特征在于,判断所述待测关键字中的多个字符是否均对应在预先设定的目标字典树的一分支中,在为是时,获取所述流量数据中与所述待测关键字对应的数据信息,包括:
按所述待测关键字中多个所述字符的排列顺序,获取所述待测关键字中的首字符;
判断所述首字符是否与预先设定的至少一个字典树中的一字典树对应,在为时是,将所述字典树作为所述目标字典树;
判断所述待测关键字中所述首字符之后的每个所述字符是否均对应在所述目标字典树的一分支中,在为是时,获取所述流量数据中与所述待测关键字对应的所述数据信息。
3.根据权利要求2所述的关键字匹配方法,其特征在于,所述节点为根节点、子节点或子节点的分支节点,判断所述首字符是否与预先设定的至少一个字典树中的一字典树对应,在为时是,将所述字典树作为所述目标字典树,包括:
判断所述至少一个字典树中,是否有一所述字典树中的所述根节点与所述首字符对应,在为是时,将所述字典树作为所述目标字典树。
4.根据权利要求3所述的关键字匹配方法,其特征在于,判断所述待测关键字中所述首字符之后的每个所述字符是否均对应在所述目标字典树的一分支中,在为是时,获取所述流量数据中与所述待测关键字对应的所述数据信息,包括:
按所述待测关键字中所述首字符之后每个所述字符排列顺序,依次将每个所述字符与所述目标字典树的所述根节点之后的所述子节点或所述子节点的分支节点匹配,其中,匹配的每个所述子节点或所述子节点的分支节点与匹配的其余所述子节点或所述子节点的分支节点具有链接关系;
判断是否存在与所述目标字典树的所述子节点或所述子节点的分支节点不匹配的所述字符,在为否时,判定所述待测关键字中所述首字符之后的每个所述字符均对应在所述目标字典树的一分支中,获取所述流量数据中与所述待测关键字对应的所述数据信息。
5.根据权利要求1所述的关键字匹配方法,其特征在于,所述方法还包括:
获取并解析多个预存关键字;
根据所述多个预存关键字,按预设规则建立至少一个字典树,其中,所述预设规则为每个所述字典树的一分支中,该所述分支中的多个所述节点与一所述预存关键字中多个字符对应;
将所述至少一个字典树存储。
6.根据权利要求5所述的关键字匹配方法,其特征在于,所述节点为根节点、子节点或子节点的分支节点,根据所述多个预存关键字,按预设规则建立至少一个字典树,包括:
针对每个所述预存关键字,获取所述预存关键字的多个所述字符中的首字符;
针对每个所述预存关键字,判断是否存在所述字符与所述预存关键字中的首字符相同的一目标预存关键字,在为否时,按所述预存关键字的所述多个字符的排列顺序建立对应的一所述字典树,在为是时,将所述预存关键字的所述多个字符按排列顺序,组合到所述目标预存关键字的所述多个字符按排列顺序建立对应的一目标字典树中,获得组合后的所述字典树,以使组合后的所述字典树中每个所述分支均对应一所述预存关键字。
7.一种关键字匹配装置,其特征在于,所述装置包括:
解析获取模块,用于解析流量数据,获取所述流量数据中的待测关键字;
匹配处理模块,用于判断所述待测关键字中的多个字符是否均对应在预先设定的目标字典树的一分支中,在为是时,获取所述流量数据中与所述待测关键字对应的数据信息,其中,所述分支包括多个节点,每个所述节点对应一所述字符。
8.根据权利要求7所述的关键字匹配装置,其特征在于,所述匹配处理模块包括:
获取单元,用于按所述待测关键字中多个所述字符的排列顺序,获取所述待测关键字中的首字符;
判断单元,用于判断所述首字符是否与预先设定的至少一个字典树中的一字典树对应,在为时是,将所述字典树作为所述目标字典树;
判断处理单元,用于判断所述待测关键字中所述首字符之后的每个所述字符是否均对应在所述目标字典树的一分支中,在为是时,获取所述流量数据中与所述待测关键字对应的所述数据信息。
9.根据权利要求7所述的关键字匹配装置,其特征在于,所述装置还包括:
获取解析模块,用于获取并解析多个预存关键字;
模型建立模块,用于根据所述多个预存关键字,按预设规则建立至少一个字典树,其中,所述预设规则为每个所述字典树的一分支中,该所述分支中的多个所述节点与一所述预存关键字中多个字符对应;
存储模块,用于将所述至少一个字典树存储。
10.根据权利要求9所述的关键字匹配装置,其特征在于,所述节点为根节点、子节点或子节点的分支节点,所述模型建立模块包括:
第一模型建立单元,用于针对每个所述预存关键字,获取所述预存关键字的多个所述字符中的首字符;
第二模型建立单元,用于针对每个所述预存关键字,判断是否存在所述字符与所述预存关键字中的首字符相同的一目标预存关键字,在为否时,按所述预存关键字的所述多个字符的排列顺序建立对应的一所述字典树,在为是时,将所述预存关键字的所述多个字符按排列顺序,组合到所述目标预存关键字的所述多个字符按排列顺序建立对应的一目标字典树中,获得组合后的所述字典树,以使组合后的所述字典树中每个所述分支均对应一所述预存关键字。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710856489.6A CN107590258B (zh) | 2017-09-20 | 2017-09-20 | 关键字匹配方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710856489.6A CN107590258B (zh) | 2017-09-20 | 2017-09-20 | 关键字匹配方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107590258A true CN107590258A (zh) | 2018-01-16 |
CN107590258B CN107590258B (zh) | 2020-04-28 |
Family
ID=61048144
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710856489.6A Active CN107590258B (zh) | 2017-09-20 | 2017-09-20 | 关键字匹配方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107590258B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112749301A (zh) * | 2020-10-12 | 2021-05-04 | 河南大学 | 一种海量遥感元数据模糊xml的关键字查询方法 |
CN113127692A (zh) * | 2019-12-31 | 2021-07-16 | 北京奇艺世纪科技有限公司 | 一种数据存储结构、检索方法、数据存储方法及终端设备 |
CN113821211A (zh) * | 2021-09-17 | 2021-12-21 | 杭州迪普科技股份有限公司 | 命令解析方法、装置、存储介质和计算机设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5761655A (en) * | 1990-06-06 | 1998-06-02 | Alphatronix, Inc. | Image file storage and retrieval system |
CN101154228A (zh) * | 2006-09-27 | 2008-04-02 | 西门子公司 | 一种分段模式匹配方法及其装置 |
US7539153B1 (en) * | 2008-05-05 | 2009-05-26 | Huawei Technologies Co., Ltd. | Method and apparatus for longest prefix matching based on a trie |
CN105095276A (zh) * | 2014-05-13 | 2015-11-25 | 华为技术有限公司 | 一种挖掘最大重复序列的方法及装置 |
CN106713273A (zh) * | 2016-11-23 | 2017-05-24 | 中国空间技术研究院 | 一种基于字典树剪枝搜索的协议关键字识别方法 |
-
2017
- 2017-09-20 CN CN201710856489.6A patent/CN107590258B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5761655A (en) * | 1990-06-06 | 1998-06-02 | Alphatronix, Inc. | Image file storage and retrieval system |
CN101154228A (zh) * | 2006-09-27 | 2008-04-02 | 西门子公司 | 一种分段模式匹配方法及其装置 |
US7539153B1 (en) * | 2008-05-05 | 2009-05-26 | Huawei Technologies Co., Ltd. | Method and apparatus for longest prefix matching based on a trie |
CN105095276A (zh) * | 2014-05-13 | 2015-11-25 | 华为技术有限公司 | 一种挖掘最大重复序列的方法及装置 |
CN106713273A (zh) * | 2016-11-23 | 2017-05-24 | 中国空间技术研究院 | 一种基于字典树剪枝搜索的协议关键字识别方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113127692A (zh) * | 2019-12-31 | 2021-07-16 | 北京奇艺世纪科技有限公司 | 一种数据存储结构、检索方法、数据存储方法及终端设备 |
CN113127692B (zh) * | 2019-12-31 | 2023-08-18 | 北京奇艺世纪科技有限公司 | 一种数据存储结构、检索方法、数据存储方法及终端设备 |
CN112749301A (zh) * | 2020-10-12 | 2021-05-04 | 河南大学 | 一种海量遥感元数据模糊xml的关键字查询方法 |
CN112749301B (zh) * | 2020-10-12 | 2022-09-30 | 河南大学 | 一种海量遥感元数据模糊xml的关键字查询方法 |
CN113821211A (zh) * | 2021-09-17 | 2021-12-21 | 杭州迪普科技股份有限公司 | 命令解析方法、装置、存储介质和计算机设备 |
CN113821211B (zh) * | 2021-09-17 | 2023-06-27 | 杭州迪普科技股份有限公司 | 命令解析方法、装置、存储介质和计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
CN107590258B (zh) | 2020-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108365961B (zh) | 接口调用方法及终端设备、接口调用的响应方法及服务器 | |
CN102651856B (zh) | 一种提高终端上网安全性的方法、系统和装置 | |
CN107590258A (zh) | 关键字匹配方法及装置 | |
CN109672582A (zh) | 全路径监测方法、设备、存储介质及装置 | |
CN107396199A (zh) | 弹幕数据展示方法及装置、计算机可读存储介质 | |
CN107222774A (zh) | 信息展示方法及装置、计算机可读存储介质 | |
CN107196930A (zh) | 计算机网络异常检测的方法、系统及移动终端 | |
CN104899016A (zh) | 调用堆栈关系获取方法及装置 | |
CN109473169A (zh) | 一种疾病诊断方法、装置及终端设备 | |
CN108121716A (zh) | 处理问题单的方法和问题单处理系统 | |
CN109767110A (zh) | 一种风险控制系统优化方法、装置、设备及存储介质 | |
CN108255936A (zh) | 一种网页的编辑方法、系统及编辑器 | |
CN108268374A (zh) | 软件版本测试方法、装置、终端设备及存储介质 | |
CN105868244A (zh) | 基于链接标识的网页展示方法、移动终端及智能终端 | |
CN109688150A (zh) | 一种多平台账号互通方法及装置 | |
CN106502709A (zh) | 应用业务提示方法及应用业务提示装置 | |
CN107798558A (zh) | 用户行为数据分析方法及服务器 | |
CN107648854A (zh) | 一种游戏分类方法、装置及电子设备 | |
CN105007269B (zh) | 一种用户密码的恢复方法 | |
CN107957871A (zh) | 一种基于jsr303的前后端同步正则校验方法 | |
CN107294905A (zh) | 一种识别用户的方法及装置 | |
CN106034132A (zh) | 保护方法与计算机系统 | |
CN109995798A (zh) | 一种信息推送的方法及其设备 | |
JP2014130502A (ja) | 脆弱性分析装置、脆弱性分析プログラムおよび脆弱性分析方法 | |
CN104536887B (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 | ||
CB02 | Change of applicant information |
Address after: Zhejiang Zhongcai Building No. 68 Binjiang District road Hangzhou City, Zhejiang Province, the 310051 and 15 layer Applicant after: DBAPPSECURITY Ltd. Address before: Zhejiang Zhongcai Building No. 68 Binjiang District road Hangzhou City, Zhejiang Province, the 310051 and 15 layer Applicant before: DBAPPSECURITY Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |