CN107040504B - 测试方法和装置 - Google Patents

测试方法和装置 Download PDF

Info

Publication number
CN107040504B
CN107040504B CN201610080715.1A CN201610080715A CN107040504B CN 107040504 B CN107040504 B CN 107040504B CN 201610080715 A CN201610080715 A CN 201610080715A CN 107040504 B CN107040504 B CN 107040504B
Authority
CN
China
Prior art keywords
url
urls
tested
request
alternative
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.)
Active
Application number
CN201610080715.1A
Other languages
English (en)
Other versions
CN107040504A (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.)
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information 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 Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201610080715.1A priority Critical patent/CN107040504B/zh
Publication of CN107040504A publication Critical patent/CN107040504A/zh
Application granted granted Critical
Publication of CN107040504B publication Critical patent/CN107040504B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请公开了测试方法和装置。所述方法的一具体实施方式包括:获取网站服务器的日志文件中记录的请求信息;根据所述请求信息生成备选统一资源定位符URL;筛选所述备选URL,得到待测试URL;控制安全性测试工具测试所述待测试URL。该实施方式解决了需要人工收集待测试URL导致的测试效率不高且容易出现测试遗漏的问题。

Description

测试方法和装置
技术领域
本申请涉及计算机技术领域,具体涉及网络安全领域,尤其涉及测试方法和装置。
背景技术
现有技术中,如图1所示,主要依靠测试人员通过在页面输入测试值或者直接构造超文本传输协议HTTP请求进行测试,测试主要针对单个CGI(Common Gateway Interface,通用网关接口)进行。这样,测试效率较低,且需要人工收集待扫描的CGI信息,CGI列表的完整性比较难以保证,对于CGI参数值的组合情况考虑较少,容易出现测试遗漏。
发明内容
本申请的目的在于提出一种改进的测试方法和测试装置,来解决以上背景技术部分提到的技术问题。
第一方面,本申请提供了一种测试方法,所述方法包括:获取网站服务器的日志文件中记录的请求信息;根据所述请求信息生成备选统一资源定位符URL;筛选所述备选URL,得到待测试URL;控制安全性测试工具测试所述待测试URL。
在一些实施例中,所述根据所述请求信息生成备选URL,包括:组合所述请求信息中包括的请求的统一资源标识符URI以及所述请求的URI对应的请求的服务器地址,得到所述备选URL。
在一些实施例中,所述筛选所述备选URL,得到待测试URL,包括:对所述备选URL进行去重操作以得到待测试URL;其中,所述去重操作包括:根据所述备选URL中包括的目录名和文件名对所述备选URL进行分组,包括相同目录名和文件名的URL分为一组;如果同一组URL中存在不包括参数部分的URL和包括参数部分的URL,则删除所述同一组URL中不包括参数部分的URL;保留包括参数部分的URL中具有相同参数类型的URL中的一个URL,删除与保留的URL具有相同参数类型的URL。
在一些实施例中,所述获取网站服务器的日志文件中记录的请求信息,包括:获取预设周期内的网站服务器的日志文件中记录的请求信息。在一些实施例中,所述控制安全性测试工具测试所述待测试URL,包括:将所述待测试URL基于所述预设周期批量存储于所述安全性测试工具的可执行文件中;判断所述可执行文件中待测试URL的数量是否小于预先设置的待测试URL的数量的阈值;如果是,则控制安全性测试工具批量测试所述可执行文件中的待测试URL。
在一些实施例中,所述控制安全性测试工具测试所述待测试URL,包括:获取预先设置的免测试信息;控制安全性测试工具测试所述待测试URL时跳过与所述免测试信息关联的URL。
第二方面,本申请提供了一种测试装置,所述装置包括:获取单元,用于获取网站服务器的日志文件中记录的请求信息;生成单元,用于根据所述请求信息生成备选统一资源定位符URL;筛选单元,用于筛选所述备选URL,得到待测试URL;控制单元,用于控制安全性测试工具测试所述待测试URL。
在一些实施例中,所述生成单元,包括:组合模块,用于组合所述请求信息中包括的请求的统一资源标识符URI以及所述请求的URI对应的请求的服务器地址,得到所述备选URL。
在一些实施例中,所述筛选单元,包括:去重模块,用于对所述备选URL进行去重操作以得到待测试URL;其中,所述去重操作包括:根据所述备选URL中包括的目录名和文件名对所述备选URL进行分组,包括相同目录名和文件名的URL分为一组;如果同一组URL中存在不包括参数部分的URL和包括参数部分的URL,则删除所述同一组URL中不包括参数部分的URL;保留包括参数部分的URL中具有相同参数类型的URL中的一个URL,删除与保留的URL具有相同参数类型的URL。
在一些实施例中,所述获取单元,包括:获取模块,用于获取预设周期内的网站服务器的日志文件中记录的请求信息。
在一些实施例中,所述控制单元,包括:存储模块,用于将所述待测试URL基于所述预设周期批量存储于所述安全性测试工具的可执行文件中;判断模块,用于判断所述可执行文件中待测试URL的数量是否小于预先设置的待测试URL的数量的阈值;如果是,则控制安全性测试工具批量测试所述可执行文件中的待测试URL。
在一些实施例中,所述控制单元,包括:免测试信息获取模块,用于获取预先设置的免测试信息;控制模块,用于控制安全性测试工具测试所述待测试URL时跳过与所述免测试信息关联的URL。
本申请提供的测试方法和装置,通过获取网站服务器的日志文件中记录的请求信息,根据所述请求信息生成备选统一资源定位符URL,接着筛选所述备选URL,得到待测试URL;最后控制安全性测试工具测试所述待测试URL,该方法解决了传统测试方法需要人工收集待测试URL导致的测试效率不高且容易出现测试遗漏的问题。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是传统测试方法的示意图;
图2是根据本申请的测试方法的一个实施例的流程图;
图3是本申请可以应用于其中的示例性系统架构图;
图4A是根据本申请的测试方法的又一个实施例的流程图;
图4B是根据本申请的测试方法中,处理获取的服务器日志以获得待扫描文件的一种实现方式的流程图;
图5是根据本申请的测试方法中,日志文件解析的一种实现方式的流程图;
图6是根据本申请的测试装置的一个实施例的结构示意图;
图7是根据本申请的测试方法中,进行安全性扫描的一种实现方式的流程图;
图8是根据本申请的测试装置的一个实施例的结构示意图;
图9是适于用来实现本申请实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图2示出了根据本申请的测试方法的一个实施例的流程200。上述的测试方法,包括以下步骤:
步骤201,获取网站服务器的日志文件中记录的请求信息。
在本实施例中,网站服务器可以是阿帕奇(Apache)服务器、IIS(InternetInformation Services,互联网信息服务)服务器、NGINX(engine x,引擎X)服务器,下面以NGINX服务器为例,首先分析NGINX服务器的日志文件的日志格式,通常,NGINX服务器的日志文件的日志格式通过记录格式(log_format)指令用来设置,获取NGINX服务器的日志文件中的请求信息,可以是获取NGINX服务器的日志文件中,log_format定义的变量主机($host)和请求($request)的值,其中,$host用于记录请求的地址,$request用于记录请求的URI和HTTP协议版本。
在本实施例中,可以是获取预设周期内的网站服务器的日志文件;再获取上述预设周期内的网站服务器的日志文件中记录的请求信息。
例如,预设周期为一天,则可以一次获取一天内的网站服务器的日志文件,再从一天内的网站服务器的日志文件中获取其记录的请求信息。通过周期的设置可以控制请求信息的获取数量,便于后续对请求信息的处理,同时,可横向比较各个周期获取的请求信息,判断是否存在异常情况。
步骤202,根据请求信息生成备选统一资源定位符URL。
在本实施例中,可以组合步骤201中获取的请求信息中包括的请求的URI以及上述请求的URI对应的请求的服务器地址,得到备选URL,也可以通过设置服务器日志中记录请求信息的格式,直接记录请求的URL作为备选URL。这种获取URL的方式,实现了测试的自动化,且URL来自于服务器的日志文件,测试更加全面。
以NGINX服务器为例,拼接获取的服务器日志中记录的$host和$request的值后,去除$request中包括的方法名GET和最后的HTTP协议版本,以此得到用户真实请求的URL,并将其作为备选URL。
例如,一条NGINX服务器日志记录原文为:
"08/Dec/2015:10:06:09+0800""172.19.132.88""113.142.247.163"113.142.247.163,172.19.132.88"wq.jd.com"200"GET/bases/orderdetail/detailview?deal_id=10160947525&bid=0&deal_refer_u in=0&callback=renderData&t=1449540368954&g_tk=1898306532&g_ty=ls HTTP/1.1"3570"0.065""1898306532""mur7zJfWOmUKOg""172.22.21.161:80""200""0.063""-""Mozilla/5.0(Linux;U;Android4.4.4;zh-cn;2014812Build/KTU84P)AppleWebKit/533.1(KHTML,like Gecko)Version/4.0MQQBrowser/5.4TBS/025477Mobile Safari/533.1V1_AND_SQ_5.9.1_272_YYB_D QQ/5.9.1.2535NetType/WIFI WebP/0.3.0Pixel/720""-
其中,$host的值为:wq.jd.com;$request的值为:GET/bases/orderdetail/detailview?deal_id=10160947525&bid=0&deal_refer_u in=0&callback=renderData&t=1449540368954&g_tk=1898306532&g_ty=ls HTTP/1.1
拼接$host和$request的值后得到:wq.jd.com GET/bases/orderdetail/detailview?deal_id=10160947525&bid=0&deal_refer_u in=0&callback=renderData&t=1449540368954&g_tk=1898306532&g_ty=ls HTTP/1.1
去除$request中包括的方法名GET和最后的HTTP协议版本,以此得到的用户真实请求的URL为:
wq.jd.com/bases/orderdetail/detailview?deal_id=10160947525&bid=0&deal_refer_uin=0&callback=renderData&t=1449540368954&g_tk=1898306532&g_ty=ls
将上述URL作为备选URL。
步骤203,筛选备选URL,得到待测试URL。
在本实施例中,筛选步骤202生成的备选URL之前,可以先对备选URL进行纠错处理,例如备选URL中出现了“&&”,则将“&&”替换为“&”。
在本实施例的一些可选的实现方式中,可以对上述备选URL进行去重操作以得到待测试URL;上述去重操作包括:根据上述备选URL中包括的目录名和文件名对上述备选URL进行分组,包括相同目录名和文件名的URL分为一组;如果同一组URL中存在不包括参数部分的URL和包括参数部分的URL,则删除上述同一组URL中不包括参数部分的URL;保留包括参数部分的URL中具有相同参数类型的URL中的一个URL,删除与保留的URL具有相同参数类型的URL。
在本实施例的一些可选的实现方式中,可以筛选出上述备选URL中包括的目录名和文件名不含随机数的URL作为待测试URL,由于目录名或文件名包含随机数的URL数量级太大,全部测试很难完成,因此不将目录名或文件名包含随机数的URL作为待测试URL,但是可以将备选URL中包括的目录名或文件名包含随机数的URL记录下来,用于后续分析处理。
这样,在保证测试全面的基础上,减少待测试的URL的数量,提高测试效率。
步骤204,控制安全性测试工具测试待测试URL。
在本实施例中,可以推送包括待测试URL的文件到安全扫描服务器,向安全扫描服务器发送测试指示来实现控制安全扫描服务器包括的安全性测试工具测试上述待测试URL,或者当安全扫描服务器接收到包括待测试URL的文件时即开始测试。
在本实施例中,如果是获取预设周期内的网站服务器的日志文件中记录的请求信息,则可以基于上述请求信息获取待测试URL后,将上述待测试URL基于上述预设周期批量存储于上述安全性测试工具的可执行文件中。将预设周期内请求信息生成的待测试URL存储于安全性测试工具的可执行文件中,这样安全性测试工具执行上述可执行文件,即周期性的进行测试获取测试结果,便于对测试结果进行分析统计。
在本实施例中,也可以先判断可执行文件中待测试URL的数量是否小于预先设置的待测试URL的数量的阈值;如果是,则控制安全性测试工具批量测试上述可执行文件中的待测试URL。上述可执行文件中存储有预设周期内请求信息生成的待测试URL,如果可执行文件中待测试URL的数量超过了预先设置的待测试URL的数量的阈值,说明预设周期内网站接收的请求数量有存在阈值的可能,待测试URL的数量超过阈值也可能导致测试无法完成,因此应先分析异常的原因,再次对待测试URL进行筛选,或拆分上述可执行文件后再进行测试。
在本实施例中,也可以获取预先设置的免测试信息;控制安全性测试工具测试上述待测试URL时跳过与上述免测试信息关联的URL。
在本实施例中,预先设置的免测试信息包括预先设置的特定的目录名或文件名,例如,测试过程中,跳过包括上述特定的目录名或文件名的待测试URL,以此可以进一步提高测试效率,完善测试结果。
进一步参考图4A,其示出了测试方法的又一个实施例的流程400。该实施例具体为自动分析线上(即生产环境)的NGINX服务器日志,获取CGI请求信息,并按照一定的规则进行去重等处理,生成一份待扫描的CGI列表文件,然后提交给安全扫描服务器进行扫描以获取扫描结果,设备间文件的传递如图3所示,该测试方法的流程400包括以下步骤:
步骤401,处理获取的NGINX服务器日志以获得待扫描文件。
如图5所示,以预设周期为一天为例,每天定时启动测试程序,定时对获取的前一天的NGINX源日志文件解压和分析处理,生成待扫描文件,待扫描文件中包括待扫描的URL。可以通过定时任务(crontab)命令实现定时操作,如果获取的源日志文件较大,可以先将上述源日志文件分成若干份,然后启动多个线程进行并行处理。
对源日志文件的分析处理具体是先分析NGINX日志格式,其日志格式通过log-format设置,之后取日志中内置变量$host、$request,拼接成线上用户请求URL。
进一步参考图4B,其示出了对线上用户请求URL的处理的流程4010,包括以下步骤:
步骤4011,对URL进行纠错处理。
可以是消除URL中连续出现“&”两个及以上的记录,例如,拼接成线上用户请求的URL为:wq.jd.com/mcoss/mmart/show?actid=888&areaid=888&pc=888&optons=888&tpl=888&DAP=888&pps=888&&PTAG=888。这种情况就需要把”&&”替换成”&”,避免后面的程序处理出错。为后续处理CGI及参数提供基础。
步骤4012,对URL进行去重处理。
对于CGI名称相同的URL,如果同时存在没有参数的URL和带有参数的URL,则可以去除没有参数的URL,随机保留其中的一个带有参数值的URL,来降低扫描量级。如图6所示,上方为源数据,下方为处理后数据,对于wq.jd.com/mcoss/mmart/show这个CGI只保留2组参数组合,去掉了没有参数的和参数组合(s1+s2)重复的。
步骤4013,去除包含特殊CGI的URL。
特殊CGI可以已经确定不存在安全问题的CGI,也可以是数量过多无法进行扫描的CGI。例如,部分URL中CGI名称中含有随机数,上述CGI对应URL的数量级太大,难以完成扫描,对于名称含有随机数的CGI,可以先进行存储,经分析处理后再进行扫描。
步骤4014,监控待扫描文件中URL数量。
监控待扫描文件的行数,即监控待扫描的URL的数量,当文件总行数以及相对于前一天的增量超过一定阀值时,阀值是根据线上实际情况设置的,不推送给安全扫描服务器,人工定位原因。
步骤402、将待扫描文件推送到安全扫描服务器。
将待扫描文件推送到安全扫描服务器的同时,也可将CGI白名单文件一起推送给安全性扫描服务器。CGI白名单文件中包括一些特殊CGI信息,如免测试的CGI信息或CGI名称或目录名含有随机变量的CGI信息,所以在主程序处理的时候会直接过滤掉不处理,而在白名单中只添加1条记录。
步骤403、控制安全扫描服务器进行安全性扫描。
如图7所示,当安全扫描服务器包括的安全性测试工具(WVS漏洞扫描软件)接收到待扫描文件(CGI文件)后,开始对待扫描文件进行扫描。
WVS漏洞扫描软件,提供一个基于DOS命令行的工具wvs_console.exe,其工作原理与图形界面一样。因此,可以通过编写脚本,调用WVS对CGI进行批量安全漏洞扫描。命令行工具wvs_console.exe,允许指定扫描报告的文件类型和扫描结果存放的路径。在扫描之前,需要提前在图形界面中配置并保存扫描设置文件,主要为配置登录所需的cookie信息;扫描时,在wvs_console.exe的命令中指定设置文件即可。
扫描结束后,基于扫描日志文件获取扫描结果。例如,扫描日志文件中,含有关键字“Reporter,Info,[high]”的行表示该行记录的是漏洞信息,关键字后的信息为漏洞的类型和含有漏洞的CGI参数,关键字中的“high”表示漏洞级别为高级。在提取漏洞信息时,还可以对已知的误报漏洞进行过滤。分析扫描日志的同时,可以将所有扫描过的CGI、含有漏洞的CGI存入数据库。漏洞信息提取完毕后,将CGI和其漏洞信息、漏洞统计信息作为扫描结果,上述扫描结果可以通过邮件等形式自动发送至相关设备。
进一步参考图8,作为对上述各图所示方法的实现,本申请提供了一种测试装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图8所示,本实施例所述的测试装置800包括:获取单元801、生成单元802、筛选单元803和控制单元804。其中,获取单元801获取单元,用于获取网站服务器的日志文件中记录的请求信息;生成单元802,用于根据上述请求信息生成备选统一资源定位符URL;筛选单元803,用于筛选上述备选URL,得到待测试URL;控制单元804,用于控制安全性测试工具测试上述待测试URL。在本实施例中,测试装置800的获取单元801可以通过有线连接方式或者无线连接方式从网络服务器获取网站服务器的日志文件中记录的请求信息。
在本实施例中,获取单元801获取网站服务器的日志文件中记录的请求信息,供生成单元802使用,生成单元802可以根据上述请求信息生成备选统一资源定位符URL,供筛选单元803使用,筛选单元803筛选上述备选URL,得到待测试URL,供筛选单元803使用,控制单元804控制安全性测试工具测试上述待测试URL。
在本实施例中,所述生成单元802,包括:组合模块,用于组合所述请求信息中包括的请求的统一资源标识符URI以及所述请求的URI对应的请求的服务器地址,得到所述备选URL。
在本实施例中,所述筛选单元803,包括:去重模块,用于对所述备选URL进行去重操作以得到待测试URL;其中,所述去重操作包括:根据所述备选URL中包括的目录名和文件名对所述备选URL进行分组,包括相同目录名和文件名的URL分为一组;如果同一组URL中存在不包括参数部分的URL和包括参数部分的URL,则删除所述同一组URL中不包括参数部分的URL;保留包括参数部分的URL中具有相同参数类型的URL中的一个URL,删除与保留的URL具有相同参数类型的URL。
在本实施例中,所述获取单元801,包括:获取模块,用于获取预设周期内的网站服务器的日志文件中记录的请求信息。
在本实施例中,所述控制单元,包括:存储模块,用于将所述待测试URL基于所述预设周期批量存储于所述安全性测试工具的可执行文件中;判断模块,用于判断所述可执行文件中待测试URL的数量是否小于预先设置的待测试URL的数量的阈值;如果是,则控制安全性测试工具批量测试所述可执行文件中的待测试URL。
在本实施例中,所述控制单元804,包括:免测试信息获取模块,用于获取预先设置的免测试信息;控制模块,用于控制安全性测试工具测试所述待测试URL时跳过与所述免测试信息关联的URL。
本领域技术人员可以理解,上述测试装置800还包括一些其他公知结构,例如处理器、存储器等,为了不必要地模糊本公开的实施例,这些公知的结构在图8中未示出。
下面参考图9,其示出了适于用来实现本申请实施例的服务器的计算机系统900的结构示意图。
如图9所示,计算机系统900包括中央处理单元(CPU)901,其可以根据存储在只读存储器(ROM)902中的程序或者从存储部分908加载到随机访问存储器(RAM)903中的程序而执行各种适当的动作和处理。在RAM 903中,还存储有系统900操作所需的各种程序和数据。CPU 901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
以下部件连接至I/O接口905:包括键盘、鼠标等的输入部分907;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至I/O接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入存储部分908。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括获取单元、生成单元、筛选单元和控制单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,获取单元还可以被描述为“获取网站服务器的日志文件中记录的请求信息的单元”。
作为另一方面,本申请还提供了一种非易失性计算机存储介质,该非易失性计算机存储介质可以是上述实施例中所述装置中所包含的非易失性计算机存储介质;也可以是单独存在,未装配入终端中的非易失性计算机存储介质。上述非易失性计算机存储介质存储有一个或者多个程序,当所述一个或者多个程序被一个设备执行时,使得所述设备:获取网站服务器的日志文件中记录的请求信息;根据所述请求信息生成备选统一资源定位符URL;筛选所述备选URL,得到待测试URL;控制安全性测试工具测试所述待测试URL。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (12)

1.一种测试方法,其特征在于,所述方法包括:
获取网站服务器的日志文件中记录的请求信息,其中,所述日志文件的日志格式通过记录格式log_format指令设置;
根据所述请求信息生成备选统一资源定位符URL;
筛选所述备选URL,得到待测试URL;
控制安全性测试工具测试所述待测试URL;
其中,在筛选所述备选URL之前,所述方法还包括:对所述备选URL进行纠错处理;
其中,所述筛选所述备选URL,得到待测试URL,包括:对所述备选URL进行去重操作以得到待测试URL;其中,所述去重操作包括:根据所述备选URL中包括的目录名和文件名对所述备选URL进行分组,包括相同目录名和文件名的URL分为一组;如果同一组URL中存在不包括参数部分的URL和包括参数部分的URL,则删除所述同一组URL中不包括参数部分的URL;保留包括参数部分的URL中具有相同参数类型的URL中的一个URL,删除与保留的URL具有相同参数类型的URL;其中,所述去重操作还包括:去除包含特殊CGI的URL,其中,特殊CGI包括数量过多无法进行扫描的CGI;
所述获取网站服务器的日志文件中记录的请求信息,包括:获取所述日志文件中的、通过log_format定义的变量主机和变量请求的值,其中,变量主机用于记录请求的地址,变量请求用于记录请求URI和HTTP协议版本;
所述根据所述请求信息生成备选统一资源定位符URL,包括:拼接获取的变量主机和变量请求的值,以及去除变量请求中包括的方法名GET和HTTP协议版本;
所述控制安全性测试工具测试所述待测试URL,包括:利用所述安全性测试工具对包含待测试URL的文件进行扫描,得到包括CGI和对应的漏洞信息、漏洞统计信息的扫描结果。
2.根据权利要求1所述的方法,其特征在于,所述根据所述请求信息生成备选URL,包括:
组合所述请求信息中包括的请求的统一资源标识符URI以及所述请求的URI对应的请求的服务器地址,得到所述备选URL。
3.根据权利要求1所述的方法,其特征在于,所述获取网站服务器的日志文件中记录的请求信息,包括:
获取预设周期内的网站服务器的日志文件中记录的请求信息。
4.根据权利要求3所述的方法,其特征在于,所述控制安全性测试工具测试所述待测试URL,包括:
将所述待测试URL基于所述预设周期批量存储于所述安全性测试工具的可执行文件中;
判断所述可执行文件中待测试URL的数量是否小于预先设置的待测试URL的数量的阈值;
如果是,则控制安全性测试工具批量测试所述可执行文件中的待测试URL。
5.根据权利要求1所述的方法,其特征在于,所述控制安全性测试工具测试所述待测试URL,包括:
获取预先设置的免测试信息;
控制安全性测试工具测试所述待测试URL时跳过与所述免测试信息关联的URL。
6.一种测试装置,其特征在于,包括:
获取单元,用于获取网站服务器的日志文件中记录的请求信息,其中,所述日志文件的日志格式通过记录格式log_format指令设置;
生成单元,用于根据所述请求信息生成备选统一资源定位符URL;
筛选单元,用于筛选所述备选URL,得到待测试URL;
控制单元,用于控制安全性测试工具测试所述待测试URL;
其中,所述筛选单元进一步用于在筛选所述备选URL之前,对所述备选URL进行纠错处理;
其中,所述筛选单元,包括:去重模块,用于对所述备选URL进行去重操作以得到待测试URL;其中,所述去重操作包括:根据所述备选URL中包括的目录名和文件名对所述备选URL进行分组,包括相同目录名和文件名的URL分为一组;如果同一组URL中存在不包括参数部分的URL和包括参数部分的URL,则删除所述同一组URL中不包括参数部分的URL;保留包括参数部分的URL中具有相同参数类型的URL中的一个URL,删除与保留的URL具有相同参数类型的URL;其中,所述去重操作还包括:去除包含特殊CGI的URL,其中,特殊CGI包括数量过多无法进行扫描的CGI;
所述获取单元,进一步被配置成获取所述日志文件中的、通过log_format定义的变量主机和变量请求的值,其中,变量主机用于记录请求的地址,变量请求用于记录请求URI和HTTP协议版本;
所述生成单元,进一步被配置成拼接获取的变量主机和变量请求的值,以及去除变量请求中包括的方法名GET和HTTP协议版本;
所述控制单元,进一步被配置成利用所述安全性测试工具对包含待测试URL的文件进行扫描,得到包括CGI和对应的漏洞信息、漏洞统计信息的扫描结果。
7.根据权利要求6所述的装置,其特征在于,所述生成单元,包括:
组合模块,用于组合所述请求信息中包括的请求的统一资源标识符URI以及所述请求的URI对应的请求的服务器地址,得到所述备选URL。
8.根据权利要求6所述的装置,其特征在于,所述获取单元,包括:
获取模块,用于获取预设周期内的网站服务器的日志文件中记录的请求信息。
9.根据权利要求8所述的装置,其特征在于,所述控制单元,包括:
存储模块,用于将所述待测试URL基于所述预设周期批量存储于所述安全性测试工具的可执行文件中;
判断模块,用于判断所述可执行文件中待测试URL的数量是否小于预先设置的待测试URL的数量的阈值;
如果是,则控制安全性测试工具批量测试所述可执行文件中的待测试URL。
10.根据权利要求6所述的装置,其特征在于,所述控制单元,包括:
免测试信息获取模块,用于获取预先设置的免测试信息;
控制模块,用于控制安全性测试工具测试所述待测试URL时跳过与所述免测试信息关联的URL。
11.一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-5中任一所述的方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-5中任一所述的方法。
CN201610080715.1A 2016-02-04 2016-02-04 测试方法和装置 Active CN107040504B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610080715.1A CN107040504B (zh) 2016-02-04 2016-02-04 测试方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610080715.1A CN107040504B (zh) 2016-02-04 2016-02-04 测试方法和装置

Publications (2)

Publication Number Publication Date
CN107040504A CN107040504A (zh) 2017-08-11
CN107040504B true CN107040504B (zh) 2020-05-01

Family

ID=59532602

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610080715.1A Active CN107040504B (zh) 2016-02-04 2016-02-04 测试方法和装置

Country Status (1)

Country Link
CN (1) CN107040504B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108734013A (zh) * 2018-05-23 2018-11-02 郑州云海信息技术有限公司 一种处理web请求日志文件的方法
CN109240994A (zh) * 2018-08-01 2019-01-18 北京奇虎科技有限公司 一种文件处理方法及装置
CN109240919B (zh) * 2018-08-20 2022-03-22 郑州云海信息技术有限公司 一种测试数据量统计系统及方法
CN109783457B (zh) * 2018-12-17 2024-02-02 中国平安财产保险股份有限公司 Cgi接口管理方法、装置、计算机设备和存储介质
CN110472165B (zh) * 2019-08-20 2024-01-16 深圳前海微众银行股份有限公司 Url提取方法、装置、设备及计算机可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103023710A (zh) * 2011-09-21 2013-04-03 阿里巴巴集团控股有限公司 一种安全测试系统和方法
CN103313289A (zh) * 2012-03-09 2013-09-18 腾讯科技(深圳)有限公司 Wap系统自动化测试系统和方法
CN104144142A (zh) * 2013-05-07 2014-11-12 阿里巴巴集团控股有限公司 一种Web漏洞挖掘方法及系统
CN104410546A (zh) * 2014-11-27 2015-03-11 北京国双科技有限公司 实时处理系统的测试方法和装置
CN104951399A (zh) * 2015-06-19 2015-09-30 北京齐尔布莱特科技有限公司 一种软件测试系统和方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103023710A (zh) * 2011-09-21 2013-04-03 阿里巴巴集团控股有限公司 一种安全测试系统和方法
CN103313289A (zh) * 2012-03-09 2013-09-18 腾讯科技(深圳)有限公司 Wap系统自动化测试系统和方法
CN104144142A (zh) * 2013-05-07 2014-11-12 阿里巴巴集团控股有限公司 一种Web漏洞挖掘方法及系统
CN104410546A (zh) * 2014-11-27 2015-03-11 北京国双科技有限公司 实时处理系统的测试方法和装置
CN104951399A (zh) * 2015-06-19 2015-09-30 北京齐尔布莱特科技有限公司 一种软件测试系统和方法

Also Published As

Publication number Publication date
CN107040504A (zh) 2017-08-11

Similar Documents

Publication Publication Date Title
CN107040504B (zh) 测试方法和装置
CN111045952B (zh) 软件测试方法、流量回放装置、终端设备及可读存储介质
US10397077B2 (en) Generating production server load activity for a test server
US9547579B1 (en) Method and apparatus for automatically detecting defects
CN111221743A (zh) 自动化测试方法及系统
CN113342689A (zh) 一种接口的自动化测试方法、装置、电子设备及存储介质
CN113779571A (zh) WebShell检测装置、WebShell检测方法及计算机可读存储介质
CN107402878B (zh) 测试方法和装置
CN108985053B (zh) 分布式数据处理方法及装置
CN111061610B (zh) 集群系统性能测试报告的生成方法、装置和计算机设备
CN113031995B (zh) 一种更新规则的方法、装置、存储介质以及电子设备
CN115509918A (zh) 一种软件测试方法、装置、电子设备及存储介质
CN115878448A (zh) 数据库测试方法、分布式数据库、存储介质
CN115037531A (zh) 一种未授权访问漏洞检测方法、设备、系统
CN112527584A (zh) 基于脚本编写及数据采集的软件效能提升方法和系统
CN112486838A (zh) 接口测试方法、装置、计算机设备和存储介质
CN111651356A (zh) 一种应用程序测试方法、装置及系统
CN113568795B (zh) 一种静态化服务测试方法、装置、设备及存储介质
CN104780145B (zh) 数据传输的方法、装置及系统
CN114661513B (zh) 分布式多源数据的采集方法、系统、设备及存储介质
JP6125280B2 (ja) 属性情報管理装置及び属性情報管理方法
CN114095411A (zh) 测试方法、系统、电子设备及存储介质
CN115758293A (zh) 一种侵权取证方法、系统和存储介质
CN114595145A (zh) 一种测试方法和装置
CN116225938A (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
GR01 Patent grant
GR01 Patent grant