CN103856373B - 基于HTTP协议变异的Web系统健壮性测试方法 - Google Patents
基于HTTP协议变异的Web系统健壮性测试方法 Download PDFInfo
- Publication number
- CN103856373B CN103856373B CN201410103694.1A CN201410103694A CN103856373B CN 103856373 B CN103856373 B CN 103856373B CN 201410103694 A CN201410103694 A CN 201410103694A CN 103856373 B CN103856373 B CN 103856373B
- Authority
- CN
- China
- Prior art keywords
- variation
- http
- field
- web server
- mutation operator
- 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
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于HTTP协议变异的Web系统健壮性测试方法,用于解决解决Web系统健壮性测试的技术问题。技术方案是通过对HTTP数据包的协议状态、数据包结构、字段语义等方面的负面变异,生成异常HTTP数据包,发送给被测Web服务器,通过观察被测Web服务器的响应状态以及分析所返回的HTTP响应包协议状态,检验Web服务器的健壮性,解决了Web系统健壮性测试的技术问题。
Description
技术领域
本发明涉及一种Web系统健壮性测试方法,特别是涉及一种基于HTTP协议变异的Web系统健壮性测试方法。
背景技术
Web系统是当前最流行的网络应用系统,在一个Web系统投入运行之前,需要对Web系统进行功能测试、性能测试、安全性测试以及健壮性测试等各种测试,通过这些测试活动,能够及时发现和排除Web系统潜在的各种缺陷,使Web系统在功能、性能、安全性以及可用性等方面满足实际应用需求。
健壮性测试(Robustness Testing)技术用于测试一个系统在各种错误或异常条件下的健壮性和可用性。
一个Web系统通常由Web浏览器、Web服务器和HTTP协议等三部分组成,Web浏览器和Web服务器之间通过HTTP协议进行数据通信,通过HTTP数据包来交换信息。HTTP数据包分为HTTP请求包和HTTP应答包两种,Web浏览器使用HTTP请求包向Web服务器发出服务请求,HTTP请求包由三个部分组成:请求行、消息报头、请求正文;Web服务器使用HTTP应答包向Web浏览器返回应答信息,HTTP应答包也由三个部分组成:状态行、消息报头、响应正文。在HTTP请求包的每个部分中,由一个字段或多个字段组成,每个字段都定义了字段类型和取值范围。
当HTTP请求包中的某个字段或字段值出现某种错误或异常时,Web服务器可能做出三种反应:一是Web服务器检测到了错误或异常,则在返回的HTTP应答包中给出错误信息,指出HTTP请求包所包含的错误,说明Web服务器对这些错误具有良好的检测和抵御能力,系统健壮性较好;二是Web服务器未检测到错误或异常,则返回的是正常的HTTP应答包,但这些错误可能对Web服务器的正常运行带来潜在的风险,系统健壮性较差;三是Web服务器没有返回HTTP应答包,说明这些错误引起了Web服务器异常或死机,系统健壮性差。
利用Web系统的这种通信协议特性,人为地对HTTP请求包的字段类型和取值进行负面变异,生成异常HTTP数据包,发送给被测Web服务器,通过观察被测Web服务器的响应状态以及分析所返回的HTTP响应包协议状态,检验Web服务器的健壮性。这就是基于HTTP协议变异的Web系统健壮性测试方法的基本思想。
变异测试是一种软件测试技术,基本思想是首先定义一组变异算子,模拟程序中可能出现的错误,将变异算子作用于源程序,产生一组变异体,变异算子是对源程序语法的一个小的改变;然后输入测试用例,在原始程序和变异体上分别执行测试,比较两者的输出结果,进而判断软件能否检测到变异。如果两者输出相同,则证明软件未能检测出变异体,存在潜在的软件缺陷或故障;否则说明软件能够检测出该变异体及其所代表的故障。目前,变异测试主要用于软件的单元测试中,未见公开的关于HTTP协议变异测试的文献资料。
发明内容
为了解决Web系统健壮性测试的技术问题,本发明提供一种基于HTTP协议变异的Web系统健壮性测试方法。该方法通过对HTTP数据包的协议状态、数据包结构、字段语义等方面的负面变异,生成异常HTTP数据包,发送给被测Web服务器,通过观察被测Web服务器的响应状态以及分析所返回的HTTP响应包协议状态,检验Web服务器的健壮性,可以解决Web系统健壮性测试的技术问题。
本发明解决其技术问题所采用的技术方案是:一种基于HTTP协议变异的Web系统健壮性测试方法,其特点是采用以下步骤:
步骤一、HTTP协议变异方法;
(1)字段重复变异:对HTTP请求包中的一个或多个字段进行重复,变异为新的请求包;
(2)字段替换变异:进一步分为空字段替换、字段语义替换和随机字符串替换;
①空字段替换:使用空字段替换HTTP请求包中的一个或多个字段进行变异;
②字段语义替换;使用不同含义的字段值替换字段语义进行变异;
③随机字符串替换:首先确定一个完备的字符数组,其中包含所有想要用来替换的字符,然后随机抽取若干字符进行组合,最后用组合的字符串替换HTTP请求包中的内容;
(3)字段溢出变异:对HTTP请求包进行极限扩充,看能否收到相应的应答消息,这里的极限值是指超过正常数据包的大小;
使用变异算子来表示上述的变异规则,通过变异算子将正常数据包转换成异常数据包;变异算子的构造是变异测试的关键部分,根据HTTP协议特性,将变异算子分为两类:一是单项变异算子,实现字段重复变异、字段替换变异和字段溢出变异,对应的变异算子有重复变异算子、替换变异算子、溢出变异算子等三种;二是组合变异算子,将三种单项变异算子组合后,构造出重复-替换算子、重复-溢出变异算子、替换-溢出变异算子以及重复-替换-溢出变异算子;
步骤二、Web系统变异测试方法;
(1)利用单项变异算子和组合变异算子,对HTTP请求包的数据进行变异处理,形成相应的异常事例,将各种异常事例集合起来,构成异常事例库;
(2)利用每个异常事例生成相应的异常HTTP请求包,发送给被测Web服务器;
(3)如果超时未收到Web服务器的HTTP应答包,说明这些错误引起了Web服务器异常或死机,系统健壮性差;如果收到了Web服务器的HTTP应答包,并返回的是正常的HTTP应答包,说明Web服务器未检测到这些错误,Web服务器存在潜在的风险,系统健壮性较差;如果收到了Web服务器的HTTP应答包,并在返回的HTTP应答包中给出错误信息,说明Web服务器对这些错误具有良好的检测和抵御能力,系统健壮性较好;
(4)遍历异常事例库中的每一个异常事例,直至完成所有的异常事例测试。
本发明的有益效果是:由于该方法通过对HTTP数据包的协议状态、数据包结构、字段语义等方面的负面变异,生成异常HTTP数据包,发送给被测Web服务器,通过观察被测Web服务器的响应状态以及分析所返回的HTTP响应包协议状态,检验Web服务器的健壮性,解决了Web系统健壮性测试的技术问题。
下面结合附图和具体实施方式对本发明作详细说明。
附图说明
图1是本发明基于HTTP协议变异的Web系统健壮性测试方法的流程图。
具体实施方式
参照图1。本发明基于HTTP协议变异的Web系统健壮性测试方法具体步骤如下:
本方法包括两个组成部分:HTTP协议变异法和Web系统变异测试法。
1.HTTP协议变异法。
HTTP协议变异法采用如下的规则对HTTP请求包中的字段进行变异:
(1)字段重复变异:对HTTP请求包中的一个或多个字段进行重复,变异为新的请求包。例如,原始HTTP请求包为“GET/HTTP/1.1Host:www.nwpu.edu.cn”,对Host字段进行一次重复的结果为“GET/HTTP/1.1Host:www.nwpu.edu.cn Host:www.nwpu.edu.cn”。
(2)字段替换变异:可进一步分为空字段替换、字段语义替换和随机字符串替换。
①空字段替换:使用空字段来替换HTTP请求包中的一个或多个字段进行变异。例如,假设原始HTTP请求包为“GET/HTTP/1.1Host:www.nwpu.edu.cn”,则可以使用空字段替换其中的Host字段,将原HTTP请求包变异为“GET/HTTP/1.1”。
②字段语义替换;使用不同含义的字段值来替换字段语义进行变异。例如,在HTTP请求包中,第一个字段为请求方法,假设正常的请求方法为“GET”,则可使用“POST”等其他请求方法来替换原请求包中的“GET”请求方法。
③随机字符串替换:首先确定一个完备的字符数组,其中包含所有想要用来替换的字符,然后随机抽取若干字符进行组合,最后用组合的字符串替换HTTP请求包中的内容。
(3)字段溢出变异:对HTTP请求包进行极限扩充,看能否收到相应的应答消息,这里的极限值是指超过正常数据包的大小。
使用变异算子来表示上述的变异规则,通过变异算子将正常数据包转换成异常数据包,也称作变异规则或者变异转换。变异算子的构造是变异测试的关键部分,根据HTTP协议特性,将变异算子分为两类:一是单项变异算子,主要实现字段重复变异、字段替换变异和字段溢出变异,对应的变异算子有重复变异算子、替换变异算子、溢出变异算子等三种;二是组合变异算子,将三种单项变异算子组合后,构造出新的变异算子,主要有重复-替换算子、重复-溢出变异算子、替换-溢出变异算子、重复-替换-溢出变异算子等四种。
2.Web系统变异测试法。
Web系统变异测试方法如下:
(1)利用单项变异算子和组合变异算子,对HTTP请求包的数据进行变异处理,形成相应的异常事例,将各种异常事例集合起来,构成异常事例库;
(2)利用每个异常事例生成相应的异常HTTP请求包,发送给被测Web服务器;
(3)如果超时未收到Web服务器的HTTP应答包,说明这些错误引起了Web服务器异常或死机,系统健壮性差;如果收到了Web服务器的HTTP应答包,并返回的是正常的HTTP应答包,说明Web服务器未检测到这些错误,Web服务器存在潜在的风险,系统健壮性较差;如果收到了Web服务器的HTTP应答包,并在返回的HTTP应答包中给出错误信息,说明Web服务器对这些错误具有良好的检测和抵御能力,系统健壮性较好;
(4)遍历异常事例库中的每一个异常事例,直至完成所有的异常事例测试。
Claims (1)
1.一种基于HTTP协议变异的Web系统健壮性测试方法,其特征在于包括以下步骤:
步骤一、HTTP协议变异方法;
(1)字段重复变异:对HTTP请求包中的一个或多个字段进行重复,变异为新的请求包;
(2)字段替换变异:进一步分为空字段替换、字段语义替换和随机字符串替换;
①空字段替换:使用空字段替换HTTP请求包中的一个或多个字段进行变异;
②字段语义替换;使用不同含义的字段值替换字段语义进行变异;
③随机字符串替换:首先确定一个完备的字符数组,其中包含所有想要用来替换的字符,然后随机抽取若干字符进行组合,最后用组合的字符串替换HTTP请求包中的内容;
(3)字段溢出变异:对HTTP请求包进行极限扩充,看能否收到相应的应答消息,这里的极限是指超过正常数据包的大小;
使用变异算子来表示上述的变异规则,通过变异算子将正常数据包转换成异常数据包;变异算子的构造是变异测试的关键部分,根据HTTP协议特性,将变异算子分为两类:一是单项变异算子,实现字段重复变异、字段替换变异和字段溢出变异,对应的变异算子有重复变异算子、替换变异算子、溢出变异算子等三种;二是组合变异算子,将三种单项变异算子组合后,构造出重复-替换算子、重复-溢出变异算子、替换-溢出变异算子以及重复-替换-溢出变异算子;
步骤二、Web系统变异测试方法;
(1)利用单项变异算子和组合变异算子,对HTTP请求包的数据进行变异处理,形成相应的异常事例,将各种异常事例集合起来,构成异常事例库;
(2)利用每个异常事例生成相应的异常HTTP请求包,发送给被测Web服务器;
(3)如果超时未收到Web服务器的HTTP应答包,说明这些错误引起了Web服务器异常或死机,系统健壮性差;如果收到了Web服务器的HTTP应答包,并返回的是正常的HTTP应答包,说明Web服务器未检测到这些错误,Web服务器存在潜在的风险,系统健壮性较差;如果收到了Web服务器的HTTP应答包,并在返回的HTTP应答包中给出错误信息,说明Web服务器对这些错误具有良好的检测和抵御能力,系统健壮性较好;
(4)遍历异常事例库中的每一个异常事例,直至完成所有的异常事例测试。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410103694.1A CN103856373B (zh) | 2014-03-20 | 2014-03-20 | 基于HTTP协议变异的Web系统健壮性测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410103694.1A CN103856373B (zh) | 2014-03-20 | 2014-03-20 | 基于HTTP协议变异的Web系统健壮性测试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103856373A CN103856373A (zh) | 2014-06-11 |
CN103856373B true CN103856373B (zh) | 2017-01-25 |
Family
ID=50863612
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410103694.1A Expired - Fee Related CN103856373B (zh) | 2014-03-20 | 2014-03-20 | 基于HTTP协议变异的Web系统健壮性测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103856373B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105790968A (zh) * | 2014-12-18 | 2016-07-20 | 中国移动通信集团黑龙江有限公司 | 一种评估监测互联网业务异常变化情况的方法及装置 |
CN108881102A (zh) * | 2017-05-08 | 2018-11-23 | 福建省天奕网络科技有限公司 | 一种数据合法性检测能力的测试方法及系统 |
CN112769655B (zh) * | 2021-03-02 | 2022-08-12 | 北京百家科技集团有限公司 | 一种网络变异测试方法、装置及系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103532777A (zh) * | 2013-10-08 | 2014-01-22 | 江苏大学 | 基于SOAP消息最坏差异输入变异的Web Service脆弱性测试方法 |
-
2014
- 2014-03-20 CN CN201410103694.1A patent/CN103856373B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103532777A (zh) * | 2013-10-08 | 2014-01-22 | 江苏大学 | 基于SOAP消息最坏差异输入变异的Web Service脆弱性测试方法 |
Non-Patent Citations (1)
Title |
---|
Web系统稳定性评价方法研究;简炜 等;《网络安全》;20130331;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN103856373A (zh) | 2014-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10769228B2 (en) | Systems and methods for web analytics testing and web development | |
CN104579822B (zh) | 基于Http协议的移动应用自动化性能测试系统及方法 | |
Song et al. | SymbexNet: Testing network protocol implementations with symbolic execution and rule-based specifications | |
US8528093B1 (en) | Apparatus and method for performing dynamic security testing using static analysis data | |
CN107168844B (zh) | 一种性能监控的方法及装置 | |
CN113572726B (zh) | 一种多模态网络控制-数据平面一致性校验方法及装置 | |
US9591510B2 (en) | Systems and methods to create message traffic | |
CN101196817A (zh) | 测试用例生成方法及系统 | |
CN103856373B (zh) | 基于HTTP协议变异的Web系统健壮性测试方法 | |
US10123190B2 (en) | System and method for testing a CoAP server | |
CN102999424B (zh) | 一种并行远程自动化测试的方法 | |
Manickam et al. | Labelled Dataset on Distributed Denial‐of‐Service (DDoS) Attacks Based on Internet Control Message Protocol Version 6 (ICMPv6) | |
CN105743725A (zh) | 一种测试应用程序的方法和装置 | |
Wang et al. | On the value of quality of service attributes for detecting bad design practices | |
Hummer et al. | Testing of data‐centric and event‐based dynamic service compositions | |
CN105071991B (zh) | 多个防火墙的ip连通性的测试方法 | |
CN103198062B (zh) | 一种监控页面死链和js错误的方法及系统 | |
US9329960B2 (en) | Methods, systems, and computer readable media for utilizing abstracted user-defined data to conduct network protocol testing | |
CN109299002A (zh) | 测试报告的生成方法、计算机可读存储介质及终端设备 | |
CN103731315A (zh) | 一种服务器故障检测方法 | |
TW201629768A (zh) | 基礎架構規則產生技術 | |
Rosenthal et al. | Enhancing the LOCKSS digital preservation technology | |
CN103297480A (zh) | 一种应用服务自动检测系统和方法 | |
CN103326892B (zh) | Web接口的操作方法及装置 | |
You et al. | FuzzDocs: an automated security evaluation framework for IoT |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170125 Termination date: 20170320 |
|
CF01 | Termination of patent right due to non-payment of annual fee |