一种在http协议还原中实现自定义输出的方法及系统的制作方法

文档序号:7817540阅读:268来源:国知局
一种在http协议还原中实现自定义输出的方法及系统的制作方法
【专利摘要】本发明涉及一种在HTTP协议还原中实现自定义输出的方法及系统。该方法包括:添加输出控制的配置文件,其中包含HTTP模块划分子模块类型的配置项,以及子模块支持的解码对象的名称;添加模板文件,其中包含模板类型、解码对象名称和对应HTTP协议的三元组;加载模板文件和输出控制的配置文件;获取并解析需要解析的HTTP协议数据包,得到三元组,将其与模板文件中设置的三元组信息进行匹配,如果匹配则按照模板文件中设置的字段规则在数据包中精确提取内容;根据匹配的模板类型生成相应的输出结构体,按照输出结构体的数组顺序输出记录。本发明通过输出控制配置文件并结合模板技术,实现了系统输出的灵活控制。
【专利说明】—种在HTTP协议还原中实现自定义输出的方法及系统

【技术领域】
[0001 ] 本发明属于网络监控【技术领域】,具体涉及一种在HTTP协议还原中实现自定义输出的方法及系统。

【背景技术】
[0002]随着网络的普及和发展,协议还原技术在当今网络监控中的作用变得日益重要,基于HTTP协议的WEB应用种类繁多,为此将HTTP协议内容还原,对当今网络安全行业意义重大。
[0003]中国专利CN102098331A S卩“一种还原WEB类应用内容的方法及其系统”提供了一种高效还原HTTP协议内容的方法,此方法根据WEB类应用数据包特征写成模板文件,读取模板文件并解析,形成模板链表,将HTTP数据包头部解析,并取得URL、H0ST等头部内容,将解析出的URL、HOST等字段与模板描述的URL、HOST等字段进行比对,找出匹配的模板,用匹配成功的模板中定义的关键字在HTTP内容部分提取出相应的内容。该技术可高效还原WEB类应用内容,并且可简单地通过增加模板来增加协议。
[0004]专利CN102098331A中提供的方法中通过模板文件设定协议类型,例如WDSL_TYPE=WEBBBS用来设定该模板为WebBBS类型的模板,传统的HTTP协议还原技术就是根据匹配模板的WDSL_TYPE类型然后进入HTTP模块中相应的子模块,如上述例子中进入WebBBS的解码模块,然后经过解码模块提取内容,最后输出。这种方法存在的缺陷是HTTP中每个解码模块都是事前定义好的,硬编码到程序中,每个解码模块都对应一个处理函数,函数内部除了完成解码功能以外,还要控制模块的输出类型,例如BBS模块输出到BBS类中,Blog模块输出到Blog类中等等。这样的方式处理数据,使得系统失去灵活性,如果系统接口修改或者HTTP协议子模块分类修改的话,程序中代码也需要随之修改。其实对于HTTP协议来讲,协议内部子模块划分输出是根据用户要求或者开发人员根据web站点类型主观上的划分,没有标准依据性。当输出分类重新划分或者子模块输出接口变更时,代码变动较大,造成后期维护成本增加,不利于系统整体的稳定性和输出高质量数据的准确性。


【发明内容】

[0005]本发明针对上述问题,通过利用控制输出配置文件中设定规则,并结合模板提取web内容,实现了一种在HTTP协议还原中实现自定义输出的方法及系统。
[0006]本发明采用的技术方案如下:
[0007]一种在HTTP协议还原中实现自定义输出的方法,其步骤包括:
[0008]I)添加输出控制的配置文件,所述输出控制的配置文件中包含HTTP模块划分子模块类型的配置项,以及子模块支持的解码对象的名称;
[0009]2)添加模板文件,所述模板文件中包含模板类型、解码对象名称和对应HTTP协议的三元组,其中模板类型和步骤I)所述输出控制的配置文件中子模块的名称一致,解码对象名称和步骤I)所述输出控制的配置文件中的解码对象的名称一致;
[0010]3)加载所述模板文件和所述输出控制的配置文件,并在模板文件的解码对象的结构体中添加一 Index索引值,表示该解码对象对应所述输出控制的配置文件中的索引,SP输出接口的索引位置;
[0011 ] 4)获取需要解析的HTTP协议数据包,并解析HTTP协议,得到三元组;
[0012]5)将步骤4)所得三元组与所述模板文件中设置的三元组信息进行匹配,如果匹配,则按照模板文件中设置的字段规则在数据包中精确提取内容;如果不匹配,则直接忽略处理;
[0013]6)根据匹配的模板类型生成相应的输出结构体,输出结构体的元素数量与所述输出控制的配置文件中的解码对象数量一致,且步骤5)提取内容时将模板中解码对象的Index值保存到输出结构体数组中对应的index位置;
[0014]7)按照输出结构体的数组顺序输出记录。
[0015]一种采用上述方法的在HTTP协议还原中实现自定义输出的系统,其包括:
[0016]配置文件模块,用于添加输出控制的配置文件;
[0017]模板文件模块,用于添加模板文件;
[0018]文件加载模块,用于加载所述模板文件和所述输出控制的配置文件;
[0019]HTTP协议数据包获取及解析模块,用于获取需要解析的HTTP协议数据包,并解析HTTP协议,得到三元组;
[0020]匹配模块,用于将解析HTTP协议所得的三元组与所述模板文件中设置的三元组信息进行匹配;
[0021]内容提取模块,根据匹配模块的输出结果,按照模板文件中设置的字段规则在数据包中精确提取内容;
[0022]输出结构体生成模块,用于根据匹配的模板类型生成相应的输出结构体;
[0023]输出模块,用于按照输出结构体的数组顺序输出记录。
[0024]利用本发明提供的方法,可以快速添加新的HTTP解码模块,快速支持接口的变化带来数据输出格式的变更,变更包括输出字段的增加、删除、调换顺序等。可以使得系统同时支持更多的业务后台,通过扩展业务控制的输出配置文件可以实现系统的高效兼容性。
[0025]本发明能够实现HTTP协议还原中自定义子模块划分和自定义输出接口的功能。通过一个输出控制配置文件并结合模板技术,实现系统输出的灵活控制,这样的好处有以下几点:
[0026]1、根据需求更改子模块划分或者输出结构变更时不需要修改代码,只需要修改配置文件中模块类型名称和输出字段名称即可。
[0027]2、添加新的HTTP解码模块不需要修改代码,只需要添加输出配置文件中模块名称和相应的输出字段,并添加相应的模板文件即可。
[0028]3、节约开发时间,方便后期维护,节省维护成本。

【专利附图】

【附图说明】
[0029]图1是本发明方法的自定义输出主流程图。
[0030]图2是输出控制配置文件格式示意图。
[0031]图3是模板文件书写样式规则示意图。
[0032]图4是输出控制文件和模板文件匹配图。
[0033]图5是输出结构体示意图。

【具体实施方式】
[0034]下面通过具体实施例和附图,对本发明做进一步说明。
[0035]本发明针对传统HTTP协议还原方法中的缺陷,提出一种自定义输出的方法,用于支持系统输出格式的灵活性特点,图1是本发明技术方案的主流程图。如图1所示,具体包括下列步骤:
[0036]I)添加输出控制的配置文件,其格式如图2所示。其中SubModule为HTTP模块划分子模块类型的配置项,DecodeObj为对应子模块支持解码对象的名称,即对应输出接口字段,输出模块输出时按照DecodeObj顺序输出。
[0037]2)添加模板文件,如图3所示。其中WDSL_TYPE为模板类型,需要和输出控制的配置文件SubModule名称保持一致。另外,模板中解码对象名称必须和输出控制的配置文件中DecodeObj名称保持一致,如图4所示。模板文件中还包含三元组,如P0ST/GET、URL、HOST等,如图3所示。如果用三元组无法区分,可以增加二次验证(SUBCHECK),比较二次验证(SUBCHECK)中的DATA和实际提取到的数据是否一致,一致则二次验证通过,不一致,则二次验证不通过。
[0038]3)系统启动时加载所述模板文件和所述输出控制的配置文件,并在保存的模板文件的解码对象结构体中添加一个Index索引值,表示该解码对象对应所述输出控制的配置文件中的索引,即输出接口的索引位置。如图4所示,例如模板中解码对象PASSWORD对应的Index值为I (索引值从O开始),输出模块输出一条记录的时候PASSWORD对应第二个位置。
[0039]4)获取需要解析的HTTP协议数据包。
[0040]5)解析HTTP协议,得到三元组,如POST/GET、URL、HOST等。
[0041]6)将三元组POST/GET、URL和HOST与模板文件中设置的三元组信息进行匹配。如果模板匹配,证明该数据包中包含我们关心的信息,需要进行内容还原。如果没有匹配,则直接忽略处理。如图3所示的模板书写规范和三元组位置。
[0042]7)如果三元组与模板匹配,则按照模板中设置的字段规则在数据包中精确提取内容。如图3所示,SITE表示该字段存在于HTTP协议数据包中的具体位置;START表示开始位置;END表示结束位置。根据模板中设置的SITE、START、END内容可以精确提取HTTP协议内容。
[0043]8)根据匹配模板的WDSL_TYPE类型,生成相应的输出结构体,输出的结构体如图5所示(对应图4中WebBBS类型的输出接口),输出控制的配置文件中有多少个DecodeObj解码对象,输出结构体就对应有几个元素,步骤7)进行内容提取的时候将模板中解码对象index值保存到输出结构体数组中对应的Index位置。
[0044]9)输出模块输出记录的时候只需要按照输出结构体数组顺序输出即可。
[0045]使用本发明提供的方法,可以通过添加输出控制的配置文件实现系统输出的灵活性,并且通过多套配置文件满足不同业务的输出需求,实现系统的高兼容性特点。
[0046]以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求所述为准。
【权利要求】
1.一种在HTTP协议还原中实现自定义输出的方法,其步骤包括: 1)添加输出控制的配置文件,所述输出控制的配置文件中包含HTTP模块划分子模块类型的配置项,以及子模块支持的解码对象的名称; 2)添加模板文件,所述模板文件中包含模板类型、解码对象名称和对应HTTP协议的三元组,其中模板类型和步骤I)所述输出控制的配置文件中子模块的名称一致,解码对象名称和步骤I)所述输出控制的配置文件中的解码对象的名称一致; 3)加载所述模板文件和所述输出控制的配置文件,并在模板文件的解码对象的结构体中添加一 Index索引值,表示该解码对象对应所述输出控制的配置文件中的索引,即输出接口的索引位置; 4)获取需要解析的HTTP协议数据包,并解析HTTP协议,得到三元组; 5)将步骤4)所得三元组与所述模板文件中设置的三元组信息进行匹配,如果匹配,则按照模板文件中设置的字段规则在数据包中精确提取内容;如果不匹配,则直接忽略处理; 6)根据匹配的模板类型生成相应的输出结构体,输出结构体的元素数量与所述输出控制的配置文件中的解码对象数量一致,且步骤5)提取内容时将模板中解码对象的index值保存到输出结构体数组中对应的Index位置; 7)按照输出结构体的数组顺序输出记录。
2.如权利要求1所述的方法,其特征在于:所述三元组为POST/GET、URL、HOST。
3.如权利要求1所述的方法,其特征在于,步骤5)所述模板文件中设置的字段规则是:SITE表示该字段存在于HTTP协议数据包中的具体位置;START表示开始位置;END表示结束位置;根据模板中设置的SITE、START、END内容精确提取HTTP协议内容。
4.一种采用权利要求1所述方法的在HTTP协议还原中实现自定义输出的系统,其特征在于,包括: 配置文件模块,用于添加输出控制的配置文件; 模板文件模块,用于添加模板文件; 文件加载模块,用于加载所述模板文件和所述输出控制的配置文件; HTTP协议数据包获取及解析模块,用于获取需要解析的HTTP协议数据包,并解析HTTP协议,得到三元组; 匹配模块,用于将解析HTTP协议所得的三元组与所述模板文件中设置的三元组信息进行匹配; 内容提取模块,根据匹配模块的输出结果,按照模板文件中设置的字段规则在数据包中精确提取内容; 输出结构体生成模块,用于根据匹配的模板类型生成相应的输出结构体; 输出模块,用于按照输出结构体的数组顺序输出记录。
5.如权利要求4所述的系统,其特征在于:所述三元组为POST/GET、URL、HOST。
6.如权利要求4所述的系统,其特征在于,所述模板文件中设置的字段规则是:SITE表示该字段存在于HTTP协议数据包中的具体位置;START表示开始位置;END表示结束位置;根据模板中设置的SITE、START、END内容精确提取HTTP协议内容。
【文档编号】H04L29/08GK104320454SQ201410571897
【公开日】2015年1月28日 申请日期:2014年10月23日 优先权日:2014年10月23日
【发明者】邢壮 申请人:北京锐安科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1