CN106067876B - 一种基于模式匹配的http请求报文识别方法 - Google Patents

一种基于模式匹配的http请求报文识别方法 Download PDF

Info

Publication number
CN106067876B
CN106067876B CN201610359306.5A CN201610359306A CN106067876B CN 106067876 B CN106067876 B CN 106067876B CN 201610359306 A CN201610359306 A CN 201610359306A CN 106067876 B CN106067876 B CN 106067876B
Authority
CN
China
Prior art keywords
http request
request message
field
expression formula
matching
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.)
Expired - Fee Related
Application number
CN201610359306.5A
Other languages
English (en)
Other versions
CN106067876A (zh
Inventor
钟昊华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chengdu Guangda Hengji Communication Technology Co., Ltd
Original Assignee
Chengdu Guangda New Network Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Chengdu Guangda New Network Technology Co Ltd filed Critical Chengdu Guangda New Network Technology Co Ltd
Priority to CN201610359306.5A priority Critical patent/CN106067876B/zh
Publication of CN106067876A publication Critical patent/CN106067876A/zh
Application granted granted Critical
Publication of CN106067876B publication Critical patent/CN106067876B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种基于模式匹配的HTTP请求报文识别方法,该方法将HTTP请求报文进行分类,利用表达式组对HTTP请求报文包含的3个重要字段:GET、Host、Referer分别GET、Host、Referer算法匹配,当GET、Host、Referer三个字段都成功匹配后,认为HTTP请求报文匹配成功,并将其识别为一种分类。该方法专用于HTTP请求报文的识别,充分考虑程序处理效率的情况下,满足“HTTP请求报文识别”的灵活性,识别精确,如果需要提高精确性,可将GET匹配算法应用到其它字段。

Description

一种基于模式匹配的HTTP请求报文识别方法
技术领域
本发明属于数据包识别领域,尤其涉及到一种基于模式匹配的HTTP请求报文识别方法。
背景技术
在项目应用环境下,技术人员需要对流经设备的HTTP报文中的请求报文进行快速的识别、查询。同时,必须注意到以下几点:
1.由于请求报文的多样性,识别方法必须具有一定的灵活性。
2.为提高系统处理能力,识别效率必须尽量提升。
3.为提高系统处理能力,查询必须高效。
常规的方法是使用正规表达式来进行匹配,但正规表达式存在过于庞大、效率较低的情况,所以并不适用于要求效率的项目环境。
发明内容
为解决上述问题,本发明提出了一种基于模式匹配的HTTP请求报文识别方法,所述HTTP请求报文包括GET、Host、Referer三个字段,所述方法包括如下步骤:
步骤一:预先定义HTTP请求报文的分类及其对应的分类名,每个分类下有至少一条表达式组,每个表达式组包括Host匹配算法表达式、Referer匹配算法表达式、GET匹配算法表达式。
步骤二:选中一条待识别HTTP请求报文,进行如下操作:
S2.1:选择一个没有对所述HTTP请求报文进行过匹配计算的表达式组。
S2.2:利用S2.1选择的表达式组对HTTP请求报文的Host字段进行Host匹配运算,如果匹配算法字段为空或匹配成功则进行步骤S2.3,否则返回S2.1。
S2.3:对HTTP请求报文的Referer字段进行匹配运算,如果匹配算法字段为空或匹配成功则进行步骤S2.4,否则返回S2.1。
S2.4:对HTTP请求报文的GET字段进行匹配运算,如果匹配成功则识别出HTTP请求报文对应的分类名,否则返回S2.1。
S2.5:重复执行步骤S2.1- S2.4,直到遇到匹配的表达式组,如遍历完所有表达式组后不能匹配,则丢弃该HTTP请求报文。
步骤三:重复步骤二,直到遍历完所有待识别的HTTP请求报文。
2. 如权利要求1所述的基于模式匹配的HTTP请求报文识别方法,其特征在于,GET匹配算法包括的逻辑操作有or、^、and。
3. 如权利要求1或2所述的基于模式匹配的HTTP请求报文识别方法,其特征在于,每个表达式组还包括HASH运算表达式,HASH运算算法具有三种操作符,分别为>、<、FileName,分别用于从左到右边截取GET字段字符串、从右到左边截取GET字段字符串、截取GET字段中的文件名。
4.如权利要求3所述的基于模式匹配的HTTP请求报文识别方法,其特征在于,在S2.5中,如果遇到匹配的表达式组,则根据需要截取GET字段的字符串,将其与步骤S2.4对应的分类名进行字符串拼接,之后进行HASH运算得到HASH值。
附图说明
图1为实例举例列表。
具体实施方式
本发明的设计构思为:将HTTP请求报文进行分类,利用表达式组对HTTP请求报文包含的3个重要字段:GET、Host、Referer分别GET、Host、Referer算法匹配,当GET、Host、Referer三个字段都成功匹配后,认为HTTP请求报文匹配成功,并将其识别为一种分类。
在对详细步骤进行说明前,对本发明涉及到的算法进行说明。
1. GET匹配算法
GET匹配为多模匹配,其分为操作逻辑、模式串两部份。
操作逻辑有两种:与(and)、或(or),表明了模式串的操作逻辑。
模式串:以空格为分隔的几个字符串,字符串前的非(^)符号,表示不能匹配该串。
下面对不同操作逻辑的情况进行说明。
a.操作逻辑是or(或)时:
没有^(非)逻辑的:字符串A 字符串B 字符串C
GET字段中,包含A 或 包含B 或 包含C,匹配成功。
包括^(非)逻辑的:^字符串A 字符串B 字符串C
GET字段中,不包含A,但包含B或 包含C,匹配成功。
b.操作逻辑是and(与)的:
没有^(非)逻辑的:字符串A 字符串B 字符串C
GET字段中,包含A 且 包含B 且 包含C,匹配成功。
c.包括^(非)逻辑的:^字符串A 字符串B 字符串C
GET字段中,不包含A,但包含B 且 包含C,匹配成功。
2. Referer匹配算法
Referer匹配算法用于对Referer字段进行单模匹配。
3. Host匹配算法
Host匹配算法用于对Host字段进行单模匹配。
4. HASH算法
用于从GET字段中截取关键字符串,作为进行HASH运算的部分字段,HASH运算具有三种操作符,分别为>、<、FileName,作用分别如下:
>:从左至右运算,截取从左边字符串到右边字符串之间的内容,作为备HASH字符串。
<:从右至左运算,截取从右边字符串到左边字符串之间的内容,作为备HASH字符串。
FileName:截取GET字段中包含的文件名,作为备HASH字符串。HASH算法将取到的“分类名”和“备HASH字符串”进行字符串拼接,之后进行HASH化,计算为HASH值,备后期查询。
下面对本发明的工作步骤进行说明。
本发明包括如下步骤:
步骤一:预先定义HTTP请求报文的分类及其对应的分类名,每个分类下有至少一条表达式组(可为多个,因为一种分类下很可能含有若干种同源但不相同的HTTP请求包,需要分别有对应的表达式组进行匹配),每个表达式组包括Host匹配算法表达式、Referer匹配算法表达式、GET匹配算法表达式。
步骤二:选中一条待识别HTTP请求报文,进行如下操作:
S2.1:选择一个没有对所述HTTP请求报文进行过匹配计算的表达式组;
S2.2:利用S2.1选择的表达式组对HTTP请求报文的Host字段进行Host匹配运算,如果匹配算法字段为空或匹配成功则进行步骤S2.3,否则返回S2.1;
S2.3:对HTTP请求报文的Referer字段进行匹配运算,如果匹配算法字段为空或匹配成功则进行步骤S2.4,否则返回S2.1;
S2.4:对HTTP请求报文的GET字段进行匹配运算,如果匹配成功则识别出HTTP请求报文对应的分类名,否则返回S2.1;
S2.5:重复执行步骤S2.1- S2.4,直到遇到匹配的表达式组,如遍历完所有表达式组后不能匹配,则丢弃该HTTP请求报文;
步骤三:重复步骤二,直到遍历完所有待识别的HTTP请求报文。
在上述方法的基础上,本发明还有进一步的优化方案。即每个表达式组还包括HASH运算表达式,在S2.5中,如果遇到匹配的表达式组,则根据需要截取GET字段的字符串,将其与步骤S2.4对应的分类名进行字符串拼接,之后进行HASH运算得到HASH值,备后期查询。
下面结合图1的应用实例对本发明进行说明。
步骤一:接收到一个淘宝jpg图片的HTTP请求报文,该报文Host: www.tbcdn.cn。
步骤二:先将请求报文解释为HTTP字段,包括:Host、Referer、GET。
步骤三:用Host匹配算法,对Host字段进行匹配,如匹配失败则继续匹配下一条接收到的请求报文。如匹配成功则执行步骤四。
步骤四:用Referer匹配算法,对Referer字段进行匹配。匹配规则为空,视为匹配成功:进入下一步。
步骤五:用Get匹配算法,匹配GET字段。GET中,包含.jpg或者.png字符串的,视为匹配成功,进入步骤六。
步骤六:将该请求报文识别为分类“taobao”。
步骤七:根据HASH算法,将该请求报文中的请求文件名提取出来。
步骤八:根据六、步骤七的结果生成“taobao>文件名”的字符串,然后将该串进行HASH,得到的HASH值,作为该请求的唯一查询码。
本发明与现有正则表达式方法相比,实现了如下有益效果:
1.有针对性,专用于HTTP请求报文的识别。
2.充分考虑程序处理效率的情况下,满足“HTTP请求报文识别”的灵活性。针对HTTP请求的特点,采用自定义的表达式进行识别,一方面避免了正规表达式过于庞大,程序处理效率低的问题。一方面又可以满足目前HTTP请求报文识别的所有需求。
3.扩展灵活,随时支持除Host、Referer、GET外其它字段。例如:需要匹配HTTP协议的User-Agent字段,可以直接添加一个User-Agent匹配算法。
4.识别精确,如果需要提高精确性,可将GET匹配算法应用到其它字段。例如:需要精确匹配HTTP协议的User-Agent字段,可以直接添加一个User-Agent匹配算法,并完全采用GET匹配算法的“操作逻辑”“模式串”。
5.结构简单,表达方式简单。
6.高执行效率,针对程序算法进行优化,执行效率高。
7.高查询效率,将HTTP请求报文按算法进行HASH化,查询效率高。

Claims (3)

1.一种基于模式匹配的HTTP请求报文识别方法,所述HTTP请求报文包括GET、Host、Referer三个字段,其特征在于,所述方法包括如下步骤:
步骤一:预先定义HTTP请求报文的分类及其对应的分类名,每个分类下有至少一条表达式组,每个表达式组包括Host匹配算法表达式、Referer匹配算法表达式、GET匹配算法表达式;
步骤二:选中一条待识别HTTP请求报文,进行如下操作:
S2.1:选择一个没有对所述HTTP请求报文进行过匹配计算的表达式组;
S2.2:利用S2.1选择的表达式组对HTTP请求报文的Host字段进行Host匹配运算,如果匹配算法字段为空或匹配成功则进行步骤S2.3,否则返回S2.1;
S2.3:对HTTP请求报文的Referer字段进行匹配运算,如果匹配算法字段为空或匹配成功则进行步骤S2.4,否则返回S2.1;
S2.4:对HTTP请求报文的GET字段进行匹配运算,如果匹配成功则识别出HTTP请求报文对应的分类名,否则返回S2.1;
S2.5:重复执行步骤S2.1- S2.4,直到遇到匹配的表达式组,如遍历完所有表达式组后不能匹配,则丢弃该HTTP请求报文;在S2.5中,如果遇到匹配的表达式组,则根据需要截取GET字段的字符串,将其与步骤S2.4对应的分类名进行字符串拼接,之后进行HASH运算得到HASH值;
步骤三:重复步骤二,直到遍历完所有待识别的HTTP请求报文。
2.如权利要求1所述的基于模式匹配的HTTP请求报文识别方法,其特征在于,GET匹配算法包括的逻辑操作有or、^、and。
3.如权利要求1或2所述的基于模式匹配的HTTP请求报文识别方法,其特征在于,每个表达式组还包括HASH运算表达式,HASH运算算法具有三种操作符,分别为>、<、FileName,分别用于从左到右边截取GET字段字符串、从右到左边截取GET字段字符串、截取GET字段中的文件名。
CN201610359306.5A 2016-05-27 2016-05-27 一种基于模式匹配的http请求报文识别方法 Expired - Fee Related CN106067876B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610359306.5A CN106067876B (zh) 2016-05-27 2016-05-27 一种基于模式匹配的http请求报文识别方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610359306.5A CN106067876B (zh) 2016-05-27 2016-05-27 一种基于模式匹配的http请求报文识别方法

Publications (2)

Publication Number Publication Date
CN106067876A CN106067876A (zh) 2016-11-02
CN106067876B true CN106067876B (zh) 2019-08-16

Family

ID=57420936

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610359306.5A Expired - Fee Related CN106067876B (zh) 2016-05-27 2016-05-27 一种基于模式匹配的http请求报文识别方法

Country Status (1)

Country Link
CN (1) CN106067876B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106650454A (zh) * 2017-01-03 2017-05-10 郑州云海信息技术有限公司 一种sql注入攻击检测方法和装置
CN109857958B (zh) * 2019-02-13 2020-11-24 杭州孝道科技有限公司 一种http输入点查找的方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102158499A (zh) * 2011-06-02 2011-08-17 国家计算机病毒应急处理中心 基于http流量分析的挂马网站检测方法
CN102870116A (zh) * 2012-06-30 2013-01-09 华为技术有限公司 内容匹配方法和装置
CN103986606A (zh) * 2014-05-27 2014-08-13 重庆邮电大学 一种基于MapReduce算法的并行识别、统计网页URL的方法
CN104135507A (zh) * 2014-06-30 2014-11-05 北京奇艺世纪科技有限公司 一种防盗链的方法和装置
CN104239353A (zh) * 2013-06-20 2014-12-24 上海博达数据通信有限公司 一种web分类控制和日志审计的方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102158499A (zh) * 2011-06-02 2011-08-17 国家计算机病毒应急处理中心 基于http流量分析的挂马网站检测方法
CN102870116A (zh) * 2012-06-30 2013-01-09 华为技术有限公司 内容匹配方法和装置
CN104239353A (zh) * 2013-06-20 2014-12-24 上海博达数据通信有限公司 一种web分类控制和日志审计的方法
CN103986606A (zh) * 2014-05-27 2014-08-13 重庆邮电大学 一种基于MapReduce算法的并行识别、统计网页URL的方法
CN104135507A (zh) * 2014-06-30 2014-11-05 北京奇艺世纪科技有限公司 一种防盗链的方法和装置

Also Published As

Publication number Publication date
CN106067876A (zh) 2016-11-02

Similar Documents

Publication Publication Date Title
Jia et al. An efficient anti-collision protocol for RFID tag identification
CN104580027B (zh) 一种OpenFlow报文转发方法及设备
EP2772040B1 (en) Prefix and predictive search in a distributed hash table
CN103733590A (zh) 用于正则表达式的编译器
CN101848248B (zh) 一种规则查找方法和装置
CN105335402A (zh) 基于静态Cache的搜索方法、索引数据生成方法以及装置
CN106126383A (zh) 一种日志处理方法和装置
CN106067876B (zh) 一种基于模式匹配的http请求报文识别方法
CN107305570B (zh) 一种数据检索方法及系统
US8984100B2 (en) Data downloading method, terminal, server, and system
CN104253754A (zh) 一种acl快速匹配的方法和设备
CN104205745A (zh) 报文处理的方法与设备
CN105930104B (zh) 数据存储方法和装置
CN103391246A (zh) 报文处理方法及装置
US8572231B2 (en) Variable-length nonce generation
CN106250440B (zh) 文档管理方法和装置
CN113688289B (zh) 数据包关键字段匹配方法、装置、设备及存储介质
US9176972B1 (en) Implied M83 names in alternate name generation in directories supporting multiple naming protocols
CN112765408A (zh) 一种控制系统的设备信息查询方法及查询设备
US20130138689A1 (en) Server device, computer-readable storage medium and movement control method
KR101519619B1 (ko) 패킷 분류를 위한 시그니처 탐색 기반 패킷 탐색 장치 및 그 방법
US11470177B2 (en) Method for processing data by edge node in network including plurality of terminals and edge node
CN103853796B (zh) 数据插入方法和装置
KR101089294B1 (ko) 구조적 p2p 네트워크를 위한 데이터 매핑 방법 및 장치
CN112202677B (zh) 硬件加速查询方法、系统、电子设备及存储介质

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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200807

Address after: Floor 2, No.16, Gaopeng Avenue, high tech Zone, Chengdu, Sichuan 610000

Patentee after: Chengdu Guangda Hengji Communication Technology Co., Ltd

Address before: 610041 building four, building two, Shiyang Industrial Park, five village, Shiyang village, fifty-five village, Chengdu hi tech Zone, Sichuan, Qingyun

Patentee before: CHENGDU GUANGDA NEW NETWORK TECHNOLOGY Co.,Ltd.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20190816

Termination date: 20200527