CN104320454A - 一种在http协议还原中实现自定义输出的方法及系统 - Google Patents
一种在http协议还原中实现自定义输出的方法及系统 Download PDFInfo
- Publication number
- CN104320454A CN104320454A CN201410571897.3A CN201410571897A CN104320454A CN 104320454 A CN104320454 A CN 104320454A CN 201410571897 A CN201410571897 A CN 201410571897A CN 104320454 A CN104320454 A CN 104320454A
- Authority
- CN
- China
- Prior art keywords
- template
- file
- output
- module
- http protocol
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/186—Templates
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及一种在HTTP协议还原中实现自定义输出的方法及系统。该方法包括:添加输出控制的配置文件,其中包含HTTP模块划分子模块类型的配置项,以及子模块支持的解码对象的名称;添加模板文件,其中包含模板类型、解码对象名称和对应HTTP协议的三元组;加载模板文件和输出控制的配置文件;获取并解析需要解析的HTTP协议数据包,得到三元组,将其与模板文件中设置的三元组信息进行匹配,如果匹配则按照模板文件中设置的字段规则在数据包中精确提取内容;根据匹配的模板类型生成相应的输出结构体,按照输出结构体的数组顺序输出记录。本发明通过输出控制配置文件并结合模板技术,实现了系统输出的灵活控制。
Description
技术领域
本发明属于网络监控技术领域,具体涉及一种在HTTP协议还原中实现自定义输出的方法及系统。
背景技术
随着网络的普及和发展,协议还原技术在当今网络监控中的作用变得日益重要,基于HTTP协议的WEB应用种类繁多,为此将HTTP协议内容还原,对当今网络安全行业意义重大。
中国专利CN102098331A即“一种还原WEB类应用内容的方法及其系统”提供了一种高效还原HTTP协议内容的方法,此方法根据WEB类应用数据包特征写成模板文件,读取模板文件并解析,形成模板链表,将HTTP数据包头部解析,并取得URL、HOST等头部内容,将解析出的URL、HOST等字段与模板描述的URL、HOST等字段进行比对,找出匹配的模板,用匹配成功的模板中定义的关键字在HTTP内容部分提取出相应的内容。该技术可高效还原WEB类应用内容,并且可简单地通过增加模板来增加协议。
专利CN102098331A中提供的方法中通过模板文件设定协议类型,例如WDSL_TYPE=WEBBBS用来设定该模板为WebBBS类型的模板,传统的HTTP协议还原技术就是根据匹配模板的WDSL_TYPE类型然后进入HTTP模块中相应的子模块,如上述例子中进入WebBBS的解码模块,然后经过解码模块提取内容,最后输出。这种方法存在的缺陷是HTTP中每个解码模块都是事前定义好的,硬编码到程序中,每个解码模块都对应一个处理函数,函数内部除了完成解码功能以外,还要控制模块的输出类型,例如BBS模块输出到BBS类中,Blog模块输出到Blog类中等等。这样的方式处理数据,使得系统失去灵活性,如果系统接口修改或者HTTP协议子模块分类修改的话,程序中代码也需要随之修改。其实对于HTTP协议来讲,协议内部子模块划分输出是根据用户要求或者开发人员根据web站点类型主观上的划分,没有标准依据性。当输出分类重新划分或者子模块输出接口变更时,代码变动较大,造成后期维护成本增加,不利于系统整体的稳定性和输出高质量数据的准确性。
发明内容
本发明针对上述问题,通过利用控制输出配置文件中设定规则,并结合模板提取web内容,实现了一种在HTTP协议还原中实现自定义输出的方法及系统。
本发明采用的技术方案如下:
一种在HTTP协议还原中实现自定义输出的方法,其步骤包括:
1)添加输出控制的配置文件,所述输出控制的配置文件中包含HTTP模块划分子模块类型的配置项,以及子模块支持的解码对象的名称;
2)添加模板文件,所述模板文件中包含模板类型、解码对象名称和对应HTTP协议的三元组,其中模板类型和步骤1)所述输出控制的配置文件中子模块的名称一致,解码对象名称和步骤1)所述输出控制的配置文件中的解码对象的名称一致;
3)加载所述模板文件和所述输出控制的配置文件,并在模板文件的解码对象的结构体中添加一Index索引值,表示该解码对象对应所述输出控制的配置文件中的索引,即输出接口的索引位置;
4)获取需要解析的HTTP协议数据包,并解析HTTP协议,得到三元组;
5)将步骤4)所得三元组与所述模板文件中设置的三元组信息进行匹配,如果匹配,则按照模板文件中设置的字段规则在数据包中精确提取内容;如果不匹配,则直接忽略处理;
6)根据匹配的模板类型生成相应的输出结构体,输出结构体的元素数量与所述输出控制的配置文件中的解码对象数量一致,且步骤5)提取内容时将模板中解码对象的Index值保存到输出结构体数组中对应的index位置;
7)按照输出结构体的数组顺序输出记录。
一种采用上述方法的在HTTP协议还原中实现自定义输出的系统,其包括:
配置文件模块,用于添加输出控制的配置文件;
模板文件模块,用于添加模板文件;
文件加载模块,用于加载所述模板文件和所述输出控制的配置文件;
HTTP协议数据包获取及解析模块,用于获取需要解析的HTTP协议数据包,并解析HTTP协议,得到三元组;
匹配模块,用于将解析HTTP协议所得的三元组与所述模板文件中设置的三元组信息进行匹配;
内容提取模块,根据匹配模块的输出结果,按照模板文件中设置的字段规则在数据包中精确提取内容;
输出结构体生成模块,用于根据匹配的模板类型生成相应的输出结构体;
输出模块,用于按照输出结构体的数组顺序输出记录。
利用本发明提供的方法,可以快速添加新的HTTP解码模块,快速支持接口的变化带来数据输出格式的变更,变更包括输出字段的增加、删除、调换顺序等。可以使得系统同时支持更多的业务后台,通过扩展业务控制的输出配置文件可以实现系统的高效兼容性。
本发明能够实现HTTP协议还原中自定义子模块划分和自定义输出接口的功能。通过一个输出控制配置文件并结合模板技术,实现系统输出的灵活控制,这样的好处有以下几点:
1、根据需求更改子模块划分或者输出结构变更时不需要修改代码,只需要修改配置文件中模块类型名称和输出字段名称即可。
2、添加新的HTTP解码模块不需要修改代码,只需要添加输出配置文件中模块名称和相应的输出字段,并添加相应的模板文件即可。
3、节约开发时间,方便后期维护,节省维护成本。
附图说明
图1是本发明方法的自定义输出主流程图。
图2是输出控制配置文件格式示意图。
图3是模板文件书写样式规则示意图。
图4是输出控制文件和模板文件匹配图。
图5是输出结构体示意图。
具体实施方式
下面通过具体实施例和附图,对本发明做进一步说明。
本发明针对传统HTTP协议还原方法中的缺陷,提出一种自定义输出的方法,用于支持系统输出格式的灵活性特点,图1是本发明技术方案的主流程图。如图1所示,具体包括下列步骤:
1)添加输出控制的配置文件,其格式如图2所示。其中SubModule为HTTP模块划分子模块类型的配置项,DecodeObj为对应子模块支持解码对象的名称,即对应输出接口字段,输出模块输出时按照DecodeObj顺序输出。
2)添加模板文件,如图3所示。其中WDSL_TYPE为模板类型,需要和输出控制的配置文件SubModule名称保持一致。另外,模板中解码对象名称必须和输出控制的配置文件中DecodeObj名称保持一致,如图4所示。模板文件中还包含三元组,如POST/GET、URL、HOST等,如图3所示。如果用三元组无法区分,可以增加二次验证(SUBCHECK),比较二次验证(SUBCHECK)中的DATA和实际提取到的数据是否一致,一致则二次验证通过,不一致,则二次验证不通过。
3)系统启动时加载所述模板文件和所述输出控制的配置文件,并在保存的模板文件的解码对象结构体中添加一个Index索引值,表示该解码对象对应所述输出控制的配置文件中的索引,即输出接口的索引位置。如图4所示,例如模板中解码对象PASSWORD对应的Index值为1(索引值从0开始),输出模块输出一条记录的时候PASSWORD对应第二个位置。
4)获取需要解析的HTTP协议数据包。
5)解析HTTP协议,得到三元组,如POST/GET、URL、HOST等。
6)将三元组POST/GET、URL和HOST与模板文件中设置的三元组信息进行匹配。如果模板匹配,证明该数据包中包含我们关心的信息,需要进行内容还原。如果没有匹配,则直接忽略处理。如图3所示的模板书写规范和三元组位置。
7)如果三元组与模板匹配,则按照模板中设置的字段规则在数据包中精确提取内容。如图3所示,SITE表示该字段存在于HTTP协议数据包中的具体位置;START表示开始位置;END表示结束位置。根据模板中设置的SITE、START、END内容可以精确提取HTTP协议内容。
8)根据匹配模板的WDSL_TYPE类型,生成相应的输出结构体,输出的结构体如图5所示(对应图4中WebBBS类型的输出接口),输出控制的配置文件中有多少个DecodeObj解码对象,输出结构体就对应有几个元素,步骤7)进行内容提取的时候将模板中解码对象index值保存到输出结构体数组中对应的Index位置。
9)输出模块输出记录的时候只需要按照输出结构体数组顺序输出即可。
使用本发明提供的方法,可以通过添加输出控制的配置文件实现系统输出的灵活性,并且通过多套配置文件满足不同业务的输出需求,实现系统的高兼容性特点。
以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求所述为准。
Claims (6)
1.一种在HTTP协议还原中实现自定义输出的方法,其步骤包括:
1)添加输出控制的配置文件,所述输出控制的配置文件中包含HTTP模块划分子模块类型的配置项,以及子模块支持的解码对象的名称;
2)添加模板文件,所述模板文件中包含模板类型、解码对象名称和对应HTTP协议的三元组,其中模板类型和步骤1)所述输出控制的配置文件中子模块的名称一致,解码对象名称和步骤1)所述输出控制的配置文件中的解码对象的名称一致;
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协议内容。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410571897.3A CN104320454B (zh) | 2014-10-23 | 2014-10-23 | 一种在http协议还原中实现自定义输出的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410571897.3A CN104320454B (zh) | 2014-10-23 | 2014-10-23 | 一种在http协议还原中实现自定义输出的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104320454A true CN104320454A (zh) | 2015-01-28 |
CN104320454B CN104320454B (zh) | 2018-01-09 |
Family
ID=52375623
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410571897.3A Withdrawn - After Issue CN104320454B (zh) | 2014-10-23 | 2014-10-23 | 一种在http协议还原中实现自定义输出的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104320454B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106470245A (zh) * | 2016-10-24 | 2017-03-01 | 杭州迪普科技股份有限公司 | 页面推送方法及装置 |
CN109086064A (zh) * | 2018-08-01 | 2018-12-25 | 南京茂毓通软件科技有限公司 | 基于自定义标签语言的http协议要素通用抽取方法 |
CN114070761A (zh) * | 2021-11-11 | 2022-02-18 | 北京轨道交通路网管理有限公司 | 协议报文检测方法、其装置及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102098331A (zh) * | 2010-12-29 | 2011-06-15 | 北京锐安科技有限公司 | 一种还原web类应用内容的方法及其系统 |
CN102664935A (zh) * | 2012-04-06 | 2012-09-12 | 北京锐安科技有限公司 | 一种web类用户行为和用户信息的关联输出方法及系统 |
CN103491089A (zh) * | 2013-09-22 | 2014-01-01 | 北京锐安科技有限公司 | 一种基于http的数据还原中的转码方法及系统 |
US20140258543A1 (en) * | 2012-10-10 | 2014-09-11 | Cisco Technology, Inc. | System and Method for Implementing Network Service Level Agreements (SLAs) |
-
2014
- 2014-10-23 CN CN201410571897.3A patent/CN104320454B/zh not_active Withdrawn - After Issue
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102098331A (zh) * | 2010-12-29 | 2011-06-15 | 北京锐安科技有限公司 | 一种还原web类应用内容的方法及其系统 |
CN102664935A (zh) * | 2012-04-06 | 2012-09-12 | 北京锐安科技有限公司 | 一种web类用户行为和用户信息的关联输出方法及系统 |
US20140258543A1 (en) * | 2012-10-10 | 2014-09-11 | Cisco Technology, Inc. | System and Method for Implementing Network Service Level Agreements (SLAs) |
CN103491089A (zh) * | 2013-09-22 | 2014-01-01 | 北京锐安科技有限公司 | 一种基于http的数据还原中的转码方法及系统 |
Non-Patent Citations (2)
Title |
---|
乔峰: "基于模板化网络爬虫技术的Web网页信息抽取", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
朱随江等: "基于模板的WebMail审计系统的设计与实现", 《计算机应用与软件》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106470245A (zh) * | 2016-10-24 | 2017-03-01 | 杭州迪普科技股份有限公司 | 页面推送方法及装置 |
CN109086064A (zh) * | 2018-08-01 | 2018-12-25 | 南京茂毓通软件科技有限公司 | 基于自定义标签语言的http协议要素通用抽取方法 |
CN109086064B (zh) * | 2018-08-01 | 2022-01-14 | 南京茂毓通软件科技有限公司 | 基于自定义标签语言的http协议要素通用抽取方法 |
CN114070761A (zh) * | 2021-11-11 | 2022-02-18 | 北京轨道交通路网管理有限公司 | 协议报文检测方法、其装置及电子设备 |
CN114070761B (zh) * | 2021-11-11 | 2023-09-26 | 北京轨道交通路网管理有限公司 | 协议报文检测方法、其装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN104320454B (zh) | 2018-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105447099A (zh) | 日志结构化信息提取方法及装置 | |
CN111683066B (zh) | 异构系统集成方法、装置、计算机设备和存储介质 | |
CN104794048A (zh) | 一种ui自动化测试方法和系统 | |
CN104572644A (zh) | 数据库更新装置和数据库更新方法 | |
CN108469953A (zh) | 一种页面表单的生成方法、服务器及存储介质 | |
CN100585561C (zh) | 在嵌入式系统剪裁可重定位的elf文件的方法 | |
US10956659B1 (en) | System for generating templates from webpages | |
CN106406913A (zh) | 一种从项目中提取代码的方法及系统 | |
CN104320454A (zh) | 一种在http协议还原中实现自定义输出的方法及系统 | |
CN109902070B (zh) | 一种面向WiFi日志数据的解析存储搜索方法 | |
CN106843808A (zh) | 一种兼容不同格式类型的指令解析方法 | |
CN102521551B (zh) | 一种实现ic卡个人化发行装置及方法 | |
CN106407288A (zh) | 一种信息同步更新的方法及系统 | |
US8930808B2 (en) | Processing rich text data for storing as legacy data records in a data storage system | |
CN103902275A (zh) | 一种实现应用的语言版本切换的方法和系统 | |
CN112506869A (zh) | 文件处理方法、装置及系统 | |
CN111930708A (zh) | 基于Ceph对象存储的对象标签的扩展系统及方法 | |
CN104572730A (zh) | 数字资源导入、导出方法及装置 | |
CN111221967A (zh) | 一种基于区块链架构的语言数据分类存储系统 | |
KR101165201B1 (ko) | 컨텐츠 제공 시스템의 변환서버 | |
CN113407378A (zh) | 一种分布式数据库的分片信息备份方法及装置 | |
KR20220079042A (ko) | 서비스 제공 프로그램 기록매체 | |
KR20220079073A (ko) | 멀티미디어 변환 콘텐츠 제작 서비스 제공장치의 제작 인터페이스 장치 | |
KR20220079029A (ko) | 문서 기반 멀티 미디어 콘텐츠 자동 제작 서비스 제공 방법 | |
JP5705681B2 (ja) | 情報処理装置、データ移行用ツール生成方法およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
AV01 | Patent right actively abandoned | ||
AV01 | Patent right actively abandoned | ||
AV01 | Patent right actively abandoned |
Granted publication date: 20180109 Effective date of abandoning: 20180116 |
|
AV01 | Patent right actively abandoned |
Granted publication date: 20180109 Effective date of abandoning: 20180116 |