一种URL过滤测试方法和装置与流程

文档序号:16311278发布日期:2018-12-19 05:17阅读:305来源:国知局
一种URL过滤测试方法和装置与流程

本申请涉及网络通信领域,特别涉及一种url过滤测试方法和装置。

背景技术

互联网上的网页资源非常丰富,如果员工长时间访问如色情、赌博、病毒等具有高度安全风险的网页,以及购物、招聘、财经等与工作无关的网页,将极大的降低生产效率。通过上网行为管理产品,用户可以根据行业特征、业务需要和企业文化来制定个性化的网页访问策略,过滤非工作相关的网页。因此越来越多的网络设备(例如上网行为管理系统、下一代防火墙等)都具有url(uniformresourelocator,统一资源定位器)过滤功能,也对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过滤的方法,然后根据响应消息分析网络设备的url过滤结果。解决了需要测试人员逐个输入url以及需要测试人员具有代码编写能力的问题。大大提升了url过滤的测试效率。

附图说明

图1是本申请的系统架构图;

图2是本申请的方法流程图;

图3是本申请实施例提供的方法交互图;

图4是本申请实施例提供的装置功能模块框图;

图5是图4所示装置的硬件结构图。

具体实施方式

参见图1,图1为目前通用的用于实施url过滤测试的系统架构图,该系统包括测试机、网络设备和资源服务器等设备,其中:

测试机,用户在测试工作中实际操作的设备,安装有浏览器或url过滤测试软件等测试工具。

网络设备,本申请的网络设备泛指一切具有url过滤功能的网络设备,包括路由器、防火墙、网闸等网络设备。

资源服务器,上述url指向的资源地址,提供网页资源和服务。

以上三个设备之间的交互过程如下:

如果是采用手动测试url过滤的方法,用户在测试机的浏览器手动输入待测试的url进行访问,根据浏览器返回的页面判断url过滤是否成功;

如果是采用自动化测试工具测试url过滤的方法,用户在测试机的测试工具使用可编译程序,编写url地址,再对需测试的url地址发送http请求报文,最后根据收到的http响应报文中的内容判断url过滤是否成功。

在上述过程中,如果是手动测试url过滤的方法,需要测试人员手动打开浏览器并将待测试的url一个一个输入并访问,再根据每个url返回的页面判断url是否过滤成功,耗时耗力,测试效率极低;如果是自动化测试工具测试url过滤的方法,除了需要测试人员有一定的代码编写能力,还需要测试人员对http报文格式有一定的了解,对测试人员技术能力要求较高。

为此,本申请提供一种新的url过滤测试方法,本方法通过对url自动分类,并执行各种对抗url过滤的方法,最后根据响应消息分析url过滤的结果。不需要测试人员逐个输入url也不要测试人员具有代码编写能力。

在一个实施方案中,本申请提供的办法可以参照图2所示,包括如下步骤:

步骤201:测试机对url进行自动分类,访问分类库的该url生成访问请求,监控与所述访问请求对应的访问响应,根据访问响应分析url分类功能结果;

在一个典型的例子中,对url进行自动分类功能由网页爬虫实现,该网页爬虫可以爬取到导航网站,并分析网站分类内容,根据分类内容创建url分类库,然后访问分类库中的url生成访问请求,监控与所述访问请求对应的网络设备发送的访问响应,根据访问响应分析网络设备的url分类功能是否正常。

步骤202:测试机调用预先设置的与该url对应的对抗url过滤机制,以触发至少一个针对该url的访问请求;

在一个典型的例子中,对抗url过滤的方法有代理访问、url转码、tcp分段、变相的url访问、keep-alive访问方式等。

步骤203:测试机在对抗url过滤的机制被执行后,监控与所述访问请求对应的访问响应。

在一个典型的例子中,网络设备执行url过滤后会将响应消息发给测试机。

步骤204:测试机根据访问响应分析url过滤结果。

在一个典型的例子中,测试机分析该响应消息的特定内容的提示信息,判断网络设备的url过滤是否成功。

至此,完成图2所示流程。

通过图2所示的流程可以看出,通过对url自动分类并验证网络设备的url分类功能,并执行至少一个对抗url过滤的方法,然后根据响应消息分析网络设备的url过滤结果。解决了需要测试人员逐个输入url以及需要测试人员具有代码编写能力的问题。大大提升了url过滤的测试效率。

为了更加清楚地阐述本申请的具体实现以及其独特的技术优势,以下结合图3对本申请技术方案的一个典型的具体实施过程做进一步的详细说明。

图3为本申请中测试url过滤的具体实施过程,

首先,测试机对所有的url进行自动分类,分析网站内容,建立url分类库。比如www.iqiyi.com,网页爬虫爬取到www.iqiyi.com的导航网站,并分析网站分类内容,判断其为视频类网站,如果分类库没有视频分类库,则创建视频分类库,并将www.iqiyi.com加入视频分类库,如果测试机中已经存在视频分类库,则直接将www.iqiyi.com加入视频分类库。

然后,测试机访问视频分类库中的url(比如www.iqiyi.com),生成访问请求即http请求消息给网络设备,网络设备接收到上述http请求消息后对该url进行分类并发送访问响应给测试机,测试机开始监控与上述访问请求对应的访问响应,该访问响应为网络设备发送给测试机针对上述http请求消息的http响应消息,包含网络设备对该url的分类说明,测试机接收到该http响应消息后,进行url分类对比分析,分析出网络设备对该url的分类与测试机对该url的分类是否一致,如果一致则说明网络设备的url分类功能正常,如果不一致则说明网络设备的url分类功能存在异常。

接着测试机调用预先设置的对抗url过滤机制,触发至少一个针对该url的访问请求。测试机会发送访问请求即http请求消息给网络设备。网络设备预先已配置视频url分类阻断,网络设备接收上述http请求报文后进行url过滤操作,并发送访问响应即http响应消息给测试机,测试机分析上述http响应信息来判断网络设备对于该url的过滤是否成功。

在一个典型的例子中,测试机分析上述http响应信息的特定内容来判断网络设备对于该url的过滤是否成功,例如http响应消息中的“title”内容或者特定的“ip.id”值。举例来说,http响应消息为如下代码,测试机可以从代码的内容中分析出“title”值为“bannedpage”,说明该url在网络设备被成功过滤掉,无法正常访问url的地址。

<html>

<head>

<title>bannedpage</title>

</head>

<body>

……

</body>

</html>

由于网络设备实现url的过滤方式可以不一样,因此测试机预先设置的对抗过url过滤机制需要包含上述url的过滤方式。测试机发送执行url过滤访问的http请求消息给网络设备。网络设备接收上述http请求报文后进行url过滤操作,并发送http响应消息给测试机,测试机分析上述http响应信息来判断网络设备对于该url的过滤是否成功。

作为一个具体的实施例,测试机可以采用http代理访问来进行网络设备对抗url过滤访问的测试。使用http代理的方式访问url,http请求报文中的get信息会发生变化,若网络设备未考虑此情况,那么通过代理方式访问的url将不会被过滤。因为一般url过滤是检测http请求报文的host信息和get信息,两者组合为完整的url,网络设备也是根据报文中的url信息对用户访问的网站进行过滤,只有http请求报文中的url信息和网络设备配置的url过滤参数匹配时,用户访问的url才会被过滤。举例来说,如下代码为正常访问的http请求报文:

get/cmsn/20180320/20180320023413.html?user=hugehttp/1.0

accept:*/*

accept-language:zh-cn

user-agent:mozilla/4.0(compatible;msie8.0;windowsnt5.1;trident/4.0;.netclr2.0.50727;ieshowtoolbar;ieshowstock01toolbar;.netclr3.0.04506.648;.netclr3.5.21022;infopath.3)

connection:keep-alive

host:new.qq.com

如下代码为http代理方式访问的http请求报文:

get.http://http://new.qq.com/cmsn/20180320/20180320023413.html?user=huge/http/1.0

accept:*/*

accept-language:zh-cn

user-agent:mozilla/4.0(compatible;msie8.0;windowsnt5.1;trident/4.0;.netclr2.0.50727;ieshowtoolbar;ieshowstock01toolbar;.netclr3.0.04506.648;.netclr3.5.21022;infopath.3)

proxy-connection:keep-alive

host:www.youdao.com

作为一个具体的实施例,测试机还可以采用tcp分段来进行网络设备对抗url过滤访问的测试。一般正常http请求报文的get消息都在一个报文中,如果使用tcp分段的方式,可以强制把get消息内容分到多个报文中。以此来实现对抗网络设备对该url的过滤。

作为一个具体的实施例,测试机还可以采用变相的url访问来进行网络设备对抗url过滤访问的测试。通过变相修改访问的url信息,而且使httpserver能够解析,这样实际访问的url与网络设备配置的url不匹配,而变相访问的url,服务器又能够正常解析并回复,导致url过滤被绕过。例如过滤url(http://new.qq.com/cmsn/20180320/20180320023413.html),这样正常访问是可以过滤的,但如果修改为下两种方式,那么就可以正常访问,获取源url的网页内容。

http://new.qq.com/cmsn//20180320/20180320023413.html

http://new.qq.com/cmsn/20180320/20180320023413.html?1=1

作为一个具体的实施例,测试机还可以采用keep-alive访问方式来进行网络设备对抗url过滤访问的测试。在http请求报文的报文头加入"connection:keep-alive",就表明启用keep-alive访问方式。这样一个站点的多个资源可以在同一个连接中请求,提高访问效率。如果网站中的某一个链接被过滤,可以采用keep-alive的方式,先访问多个其他的链接,然后再访问被过滤的链接,如果网络设备url过滤在同一链接中检测深度不够,那么就可以绕过url过滤。

作为一个具体的实施例,用户还可以在测试机手动输入生成url的访问请求,即生成http请求文本信息,可根据实际测试需要,修改http请求文本信息。举例来说,http请求文本信息为如下代码,用户可以在测试机根据实际测试需要修改该http请求文本信息中的任意信息,比如修改user-agent的其中某一参数。

get./cmsn/20180320/20180320023413.html?user=%68%75%67%65.http/1.1

host:new.qq.com

connection:keep-alive

user-agent:mozilla/5.0(windowsnt6.1;wow64)applewebkit/537.36(khtml,likegecko)5chrome/62.0.3202.75safari/537.36

upgrade-insecure-requests:1

accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8

accept-encoding:gzip,deflate

测试机将上述http请求文本信息转换为http请求报文后,发送该http请求报文给网络设备,网络设备接收上述http请求报文后进行url过滤操作,并发送http响应消息给测试机,测试机分析上述http响应信息来判断网络设备对于该url的过滤是否成功。

作为一个具体的实施例,用户还可以在测试机导入之前获取的url访问请求报文生成url的访问请求,即http请求报文。举例来说可以使用wireshark等网络数据包嗅探与分析工具抓取访问网站的http请求报文。测试机自动将导入的http请求报文转换成http请求文本。用户可根据实际测试需要,修改http请求文本信息。举例来说,http请求文本信息为如下代码,用户可以在测试机根据实际测试需要修改该http请求文本信息中的任意信息,比如修改user-agent的其中某一参数。

get./cmsn/20180320/20180320023413.html?user=%68%75%67%65.http/1.1

host:new.qq.com

connection:keep-alive

user-agent:mozilla/5.0(windowsnt6.1;wow64)applewebkit/537.36(khtml,likegecko)5chrome/62.0.3202.75safari/537.36

upgrade-insecure-requests:1

accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8

accept-encoding:gzip,deflate

测试机将上述http请求文本信息转换为http请求报文后,发送该http请求报文给网络设备,网络设备接收上述http请求报文后进行url过滤操作,并发送http响应消息给测试机,测试机分析上述http响应信息来判断网络设备对于该url的过滤是否成功。

作为一个具体的实施例,在测试机发送http请求消息给网络设备后,一定时间内(比如1秒)未收到网络设备的http响应消息,则认为url过滤失败。

作为一个具体的实施例,为验证网络设备在高压力情况下,url过滤的成功率,测试机能够针对分类url、手动生成或导入报文自动生成的http请求文本,设置访问速率(比如10000次/秒),持续时间(比如30分钟),间隔时间(比如1秒),并且可以执行多个对抗url过滤机制。为提高url访问效率,在进行性能测试时,采用主动中断tcp连接的方式,例如,测试机与网络设备建立三次握手,然后发出http请求报文,收到http响应报文后立即以reset的方式关闭连接。

通过图3所示的流程可以看出,通过对url自动分类并验证网络设备的url分类功能,并执行至少一个对抗url过滤的方法,然后根据响应消息分析网络设备的url过滤结果。解决了需要测试人员逐个输入url以及需要测试人员具有代码编写能力的问题。大大提升了url过滤的测试效率。

以上对本申请提供的方法进行了描述。下面对本申请提供的装置进行描述。

参见图4,该图为本申请实施例提供的一种url过滤测试装置的功能模块框图,该装置用于测试机。所述装置包括:

分类单元401,对url进行自动分类,访问分类库的该url生成访问请求,监控与所述访问请求对应的访问响应,根据访问响应分析url分类功能结果;

调用单元402,调用预先设置的与该url对应的对抗url过滤机制,以触发至少一个针对该url的访问请求;

监控单元403,在对抗url过滤的机制被执行后,监控与所述访问请求对应的访问响应;

分析单元404,根据访问响应分析url过滤结果。

在其中一种实施方式中,所述装置还可以包括:

生成单元,根据管理员的手动输入生成url的访问请求。

所述生成单元,还用于导入之前获取的url访问请求报文并根据管理员的修改生成url的访问请求。

在其中一种实施方式中,调用预先设置的与该url对应的对抗url过滤机制包括:代理访问、url转码、tcp分段、变相的url访问、keep-alive访问方式等。

在其中一种实施方式中,根据访问响应分析url过滤结果包括:

根据访问响应的特定内容判断url过滤是否成功;

如果没有接收到访问响应则判断url过滤失败。

在其中一种实施方式中,所述触发至少一个针对该url的访问请求包括:在指定时间长度内执行多个针对该url的访问请求操作。

需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。在本申请的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

如图5所示,本申请实施例还提供一种url过滤测试装置,所述装置包括通信接口501、处理器502、存储器503和总线504;其中,通信接口501、处理器502、存储器503通过总线504完成相互间的通信。

其中,通信接口501,用于发送和接收报文。处理器502可以是一个中央处理器(cpu),存储器503可以是非易失性存储器(non-volatilememory),并且存储器503中存储有测试指令,处理器502可以执行存储器503中存储的测试指令,以实现上述的测试方法,参见图3所示流程中测试机的功能。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1