Web应用软件(共12篇)
Web应用软件 篇1
1 引 言
性能是Web应用程序成功与否的关键因素,响应时间则是性能的一个重要指标,尤其是从用户的角度来看,随着同时访问的用户数的增加,Web应用程序的响应时间也会相应增加,当其增加到用户无法接受的程度时,用户便会失去耐心而离开该网站。根据Zona Research[1]的研究指出,如果使用者等待下载网页的时间超过8 s,将有30%的用户选择停止浏览网页,同样的研究表明,如果下载网页的时间缩短1 s,则这个数字将从30%降低到8%。由此可见终端用户所感到的时间延迟[2](user-perceived latency)已经成为今天Internet的主要性能问题。
在网络带宽并没有得到相对扩充、网络流量绝对增加的情况下,是否能找到一些有效的办法,缩短整个网络对用户click的响应时间。本文针对这一问题,从Web应用程序开发的角度出发,通过提高Web应用程序的性能,从而加速网络对用户的反应速度,缩短用户感知的时间延迟。
2 Web数据响应时间
从终端用户的观点看,从浏览器对网站发出一个HTTP GET的请求,一直到网站服务器完整地传回网页内容至浏览器的这段过程可以描述为图1所示的时序图。
客户端和Web服务器之间HTTP信息的传送是通过TCP连接实现的。图1描述Web请求中的所有时间延迟。客户端向服务器发送文件请求,首先建立TCP连接(1~3),连接建立后,Web服务器响应且发送文件至客户端,客户端接受文件且在屏幕上显示出来(4~5)。如果文件中包含图片或者需要在屏幕上显示的处理数据,客户端浏览器就需要发送请求去检索获取这些数据(6~n)。整个Web页面在屏幕上显示,其中可能含有连接,如果用户点击连接,浏览器就需要使用同样的过程检索新的页面。
根据图1和以上分析,定义如下的概念:
定义1 用户感知时间Tuser用户从浏览器对网站发出一个HTTP GET的请求,直到服务器完整地回传网页内容至浏览器的这段时间。
定义2 Web数据响应时间TWeb 设Tpage为页面下载时间,Tcontent为内容生成时间,则整个页面的响应时间,则:
如前面所述,在网络带宽并没有扩充的情况下,则式(1)中的Tc这段时间就是固定的,那么提高网络性能的关键就是如何缩短Th+Ti,也就是定义2中的Web数据响应时间TWeb。在本文中,从开发Web应用程序的角度出发,从数据访问、减少网络通信量以及缓存3个方面讨论缩短Web数据响应时间的方法,并对这些方法的使用效果作了测试比较。
3 减少数据显示的响应时间
目前的Web应用开发大多采用基于B/S模式的3层架构,如图2所示。
分层分离了逻辑,使得系统结构层次明晰,系统变得灵活和易于维护。图2很好地说明了Web中的分层架构,同时也描述Web页面提取数据显示的过程,以下从软件处理数据的角度分别讨论如何缩短数据访问及Web数据显示延迟,从而缩短Web数据的响应时间,减少用户感知时间,提高用户的满意度。
3.1 数据访问的优化
对数据的访问速度很大程度上影响应用系统的性能,如果被请求的页面是一个静态页面或只有一小部分内容需要从数据库中提取,则它的加载速度比那些需要从数据库中大量读取数据或不断从数据库接收和更新数据的页面要快,因此,对于动态的页面来说,对SQL层数据处理的优化就显得非常重要。在Web开发中,除了传统的改善数据库结构和优化SQL语句外,主要从以下的几个方面进行优化。
3.1.1 使用XML技术
对于普通数据访问数据库而言,在数据量不大的情况下,一般性查询在执行速度上,不会有什么问题。每次数据提取需要1次网络往返,这在应用程序处理海量结果集时会影响性能。比如每次查询数据在十万数量级,速度问题就会暴露出来。但是实际中发现,在汇总统计查询中,用户查询频繁但变动并不大,因此可以考虑借助XML获取数据来解决上述的问题。
采用XML技术,可将查询的结果生成XML文件保存在Web服务器上,使客户端能够直接和XML文件进行交互,以节省访问数据库的资源;同时也可以将XML传送到客户端,在客户端恢复为数据集,此后就可以直接在客户端进行一些操作,而不必和服务器交互,建立非连接的数据访问以节省时间。这里采用以下的算法过程利用XML技术实现对数据库的访问。
(1) 建立数据库连接,生成查询结果数据集(DataSet);
(2) 用XmlDataDocument将查询结果集(DataSet)以XML形式保存在Web服务器的指定目录下,同时断开数据库连接;
(3) 一旦用户发送访问请求,首先查询Web服务器指定目录下是否有满足条件的XML文件,如果存在转(4),否则转(1);
(4) 创建XmlDataDocument对象,并用其Load方法加载该XML文件;
(5) 利用XPath或者XQuery查询技术,查询已加载的XML文件,生成相应的结果集。
从上面的过程可以看出,一旦有用户发送查询请求,首先将数据库服务器中的数据转化为XML文档,保存在Web服务器上,然后查询XML文件中的数据,获取查询结果。之后如果有新的请求查询相同的记录时,可以直接从Web服务器的XML文件中提取数据而不用再访问数据库。这对于用户频繁的查询汇总操作中,优势非常明显,且效率很高。这种思想在逻辑上将数据的生成和操作分开,同时节省了和数据库服务器建立连接的时间,将其转换为对服务器端XMl文件的读取,有效地减轻了对系统数据库服务器的负荷。
3.1.2 使用连接池
建立Web应用程序与数据库之间的TCP连接时,DBMS需要为其分配多种资源,而在释放连接时,DBMS需要释放掉这些资源,分配和释放资源都是比较耗时的工作,因此反复建立和释放连接势必会影响整个系统的性能。实际上,大多数应用程序仅使用1个或几个不同的连接配置。这意味着在执行应用程序期间,许多相同的连接将反复地打开和关闭。为了使打开的连接成本最低,ADO.NET使用连接池的优化方法。
连接池技术能够能重用到数据库的连接,而不是每次请求都建立新的TCP连接,新连接仅在连接池中得不到连接时才建立。当连接被关闭时,它被返回到连接池中,在那里它仍然保持与数据库的连接,与完全断开TCP连接相反。池进程保持物理连接的所有权。通过为每个给定的连接配置保留一组活动连接来管理连接。只要用户在连接上调用Open,池进程就会检查池中是否有可用的连接。如果某个池连接可用,会将该连接返回给调用者,而不是打开新连接。应用程序在该连接上调用Close时,池进程会将连接返回到活动连接池集中,而不是真正关闭连接。连接返回到池中之后,即可在下一个Open调用中重复使用。
池连接可以大大提高应用程序的性能和可缩放性。默认情况下,ADO.NET中启用连接池。除非显式禁用,否则,连接在应用程序中打开和关闭时,池进程将对连接进行优化。
3.2 表示层的数据显示
对于优化B/S下的数据显示方面,主要考虑数据传输量的大小,数据传输量的大小是决定显示响应速度的必要前提,这一点是B/S的弱项。数据传输量是指在客户端Web浏览器和Web服务器之间传送的数据量。在用VS.NET开发程序的过程中,通过减少网络的通信量减少IE浏览器和Web服务器层之间的数据传数量,缩短用户感知时间。
3.2.1 使用缓存技术
合理有效地设计和使用缓存是优化应用系统性能的重要手段,在基于Web的支持大量用户的系统开发中,这一点尤为明显。ASP.NET中的缓存能够提供性能和伸缩性的最大效益、利用有效的缓存、可以避免Web服务器与数据库之间的网络往返,绕过占用很多资源的计算,并节省服务器资源,同时改善响应时间和等待时间。
ASP.NET的缓存服务是一种提高服务器性能、降低服务器资源浪费的有效方法。对于安全性要求高的应用程序,采用在 WEB 服务器上维护缓存数据的方式可以有效地提高页面性能[2]。ASP.NET的缓存对各个应用来说是私有的,是存储各种对象的存储器,缓存的生存周期取决于应用的生存周期,当应用重新启动时,缓存实际上已重建。
Cache实现了最近最少使用(least-recently-used)替换算法,允许ASP.NET强制Cache清除操作——如果可用内存下降到低水平——则自动从Cache中删除不使用的项目。另外Cache支持依赖性到期特性,它能强制包括时间、键值、文件失效。其体系结构如图3所示。
用ASP.NET内置的多级缓存功能,缓存访问过的ASP.NET页面,从而降低Web服务器的负载,并通过更高效地提供被缓存的文件而改善WEB系统的性能。ASP.NET提供了几个级别的缓存。首先,当—个ASPX程序第一次被调用的时候会被编译,编译成功之后,生成的代码会自动缓存,所以重复运行ASP.NET程序的效率会有很大的提高。除此之外,ASP.NET还提供输出缓存(也叫页面缓存)、数据缓存(也叫应用程序缓存)和碎片缓存(也叫部分页面缓存)。
缓存提供一个简单的字典接口,以便于对象放置到缓存中并在以后使用。最简单的情况下,放置一个对象到缓存中,就如同对字典增加一个条目。在缓存策略上采用“文件和键值依赖”策略。从外部文件或者是其他缓存键值是否改变来决定本身键值是否有效。如果依赖发生改变,缓存对象将变得不可使用并从缓存中移动出来,从而更新缓冲。代码如下:
3.2.2 避免服务器和客户端的交互
HTTP是用于WWW客户机和服务器之间进行信息传输的协议,它是一种请求响应类型的协议:客户机向服务器发送请求,服务器收到请求后进行处理,对这个请求作出回答。Web浏览器包含了许多的HTTP请求,每一个请求对应一个小型文件,HTTP对每一个HTTP请求需要建立1个独立的TCP连接。
因此,客户端的每次请求将会引起客户端和服务器间的一次通信,频繁的操作势必对系统的响应时间造成严重的影响。为避免不必要的TCP连接建立,通常只需在向服务器查询或更新数据时才触发客户端与服务器之间的信息交互。能在客户端执行的数据操作应尽可能的用客户端脚本(如Javascript)实现。例如,对用户输入数据的校验,应该尽量在客户端进行校验,再将数据提交给服务器。
3.2.3 利用DTO减少远程调用次数
在分布式架构中,相关层在物理部署上实现分离,通过网络或跨进程调用远程对象或服务。在这种分布式架构中,必须先找到远程对象位置,而且建立与远程计算机的连接,然后才能将数据串行化为字节流,然后可能进行加密,最后才能将其传输到远程计算机。远程调用需要跨越网络或进程,因此会比较慢。
避免远程调用中固有的滞后时间问题的最佳方法是进行更少的调用,并让每个调用传递更多的数据,这可以通过定义有效的数据传输对象(Data Transfer Object,DTO)来实现层与层之间的数据传输。
创建一个数据传输对象(DTO),用该对象包含远程调用所需要的所有数据。修改远程方法签名,以便将DTO作为单个参数接受,并将单个DTO参数返回给客户端。在调用方应用程序收到DTO并将其作为本地对象存储之后,应用程序可以分别对DTO发出一系列单独的过程调用,而不会引发远程调用开销。如图4所示。
在图4中,DTO允许远程对象在单个远程调用中将整个客户名称返回给客户端,这就将调用次数从3次减为1次。客户端进行单个调用,然后在本地与DTO交互,而不用进行多次远程访问服务器。通过使用DTO,在单一远程调用中传输更多的数据信息,减少远程调用的次数,提高分布式调用的性能。
4 测试结果及分析
以上方案已在开发系统中得到实际的应用,并取得了良好的效果。为了测试以上方案的有效性,这里选取系统中有代表的页面,利用VS.NET中的ACT(Application Center Test)工具进行压力测试。在不考虑网络传输速度的情况下,分别测试原始页面和改进后的页面,得到表1详细的测试结果:
从表1中可以看出,采用上述方案生成的页面无论是在每秒平均请求数还是平均响应时间上,都有数量级的提高,极大地提高了系统的性能,缩短了Web页面的响应时间,从而缩短用户感知延迟时间,提高用户的满意度。
5 结 语
在B/S结构的开发中,响应时间是一个很重要的指标。本文针对Web应用程序的特点,从软件处理数据的角度出发,从优化数据访问以及Web数据显示2方面提出了缩短Web响应时间方案,并利用ACT测试工具对实际应用进行压力测试,发现此方案的可行性。除此之外,还可以通过优化数据库结构的设计,合理配置应用服务器所提供的性能优化选择,合理配置编译器选项等方法对提高Web应用的总体性能。
摘要:缩短Web访问中的用户感知时间,提高网站性能是Web应用程序开发中一个极为重要的问题。从软件处理数据的角度出发,针对Web应用程序的特点,从优化数据访问以及Web数据显示2个方面分别讨论如何缩短Web数据响应时间,以达到缩短用户感知时间的方法。并利用ACT测试工具对进行测试,并给出了这些方法的实际应用测试数据。验证本文所提出的方法能极大地优化Web应用程序的应用,有效地缩短用户的感知时间。
关键词:Web应用,Web响应时间,XML,缓存
参考文献
[1] Zona Research,The Economic Impacts of Unacceptable Web-Site Download Speeds,April 1999.http://www.webperf.net/info/wp_downloadspeed.pdf.
[2]Cohen E,Kaplan H.Prefetching the Means for DocumentTransfer:A New Approach for Reducing Web Latency[A].Proceedings of the IEEE INFOCOM'2000[C].Piscat-away(NJ):IEEE,2000,2:854-863.
[3] Habib M,Abrams M.Analysis of Sources of Latency in Downloading Web Pages[A].Proceedings of WebNetWorld Conference of the WWW,Internet,and Intranet[C].San Antonio(TX): IEEE,2000:227-232.
[4]Foygel D,Strelow D.Reducing Web Latency with Hierarchi-cal Cache based Prefetching.in Proc.of the InternationalWorkshop on Scalable Web Services,(in conjunction withICPP'00),Toronto,Ontario,Canada,2000:47-57.
Web应用软件 篇2
这种模式是真正的“C”客户机模式,客户端不需要安装其它软件,只安装浏览器软件.所有的事务操作都在服务器端完成,下面将结合实例详细说明:
利用PowerBuilder开发一个网上购书应用.对于分布式PowerBuilder应用,首先应向客户Web.PB指明PowerBuilder服务器应用在网络上的位置(Location),其应用名,使用文件PBWEB.INI来记录服务器应用信息.在此例中,取服务器应用名为TUTORIAL, Driver=Winsock, Application=10099/tcp, Location=Localhost.
建一个数据库(book_dealing)其中有三个表,分别为:
“ book”: b_name, b_no, b_publisher, b_price,b_num
“customer”: c_name, c_tel,c_addr
“dealing”: b_name, c_name, d_num,d_time
建一个数据窗口dw_book,其SQL语法为:
SELECT“book”.”b_name”,
“book”.”b_no”,
“book”.”b_publisher”,
“book”.”b_price”,
“book”.”b_num”
FROM“book”
创建PB服务器应用的用户界面。在窗口w_server上有两个按钮cb_1,cb_2,再定义一个transport类型的实例变量mytransport,cb_1的clicked事件有关程序如下:
..........
mytransport = create transport
mytransport .driver = “winsock”
mytransport.location = “localhost”
mytransport.application = “10099”
.........
创建一个不可视的用户对象u_inter
net,定义一个transaction类型的全局变量mytransaction,在该用户对象的constructor事件中定义连接到数据库(book_dealing)的.事务对象mytransaction和连接到数据库(webpb)的事务对象sqlca,在该对象的destructor事件中分别取消这两个事务对象。
在u_internet上定义两个函数分别为f_book, f_book_dealing,这两个函数的返回值都为字符类型。在f_book中,利用数据窗口dw_book作数据库查询,再利用数据窗口的属性将查询结果以HTML形式返回给web.pb,有关程序如下:
string return_html
datastore dd
dd = create datastore
dd.dataobject = ”dw_book”
dd.settransobject(mytransaction)
dd.retrieve
.... .
return_html=return_html+dd.object.datawindow.data.htmltable
......
returnreturn_html
在函数f_dealing中,定义参数分别为:book_name, deal_num, custom_name, deal_time, custom_tel, custom_addr,用来接受FORM元素传来的信息。再利用PowerScripts语言对数据库(book_dealing)进行修改。有关程序如下:
stringreturn_html
…………
connectionusingmytransaction;
insertinto“customer”
(“c_name”,
“c_tel”,
“c_addr”)
values( :custom_name,:custom_tel,:custom_addr);
insertinto“dealing”
(“b_name”,
”d_num”,
”d_time”,
”c_name”)
value(:book_name, :deal_num, :deal_time, :custom_name);
ifmytransaction.sqlcacode>0then
return_html=”定货成功!”
else
return_html=”定货失败!”
endif
………..
returnreturn_html
主页上的“浏览书库”的超连接为:
〈A HERF=”/scripts/pbcgi60.exe/tutorial/u_internet/f_book”〉 浏览书库
定书信息页上应有几个单行编辑器,用来录入用户购书信息(例如:书名,用户名,购书数量.,等等)其FORM元素的ACTION为:
method= “get”>
以上程序可实现简单的网上购书的功能,既用户可浏览书库,也可订购所需
的图书。
参考文献
1 《PowerBuilderInternet/Intranet 解决方案 》晓通数据库研究与发展中心
2 《PowerBuilderInternet技术详解》肖兵
;电子工业出版社
--------------------------------------------------------------------
作者简介
Web应用将革应用商店的命? 篇3
用户说:跨平台跨终端是主流
移动互联网时代,用户希望尽可能快速地到达想要去的网页,而应用商店本地化应用在这方面似乎有着天生的缺陷。用户使用应用程序,在操作过程中需要反复跳往浏览器的链接。这个步骤纯属多余,却又不可避免。
Web应用有望以此作为超越应用商店应用的筹码。UC优视创始人、产品总裁何小鹏表示,相比客户端应用,Web应用最大的优势就是统一便捷,Web应用有免下载、免安装、免更新、随时随地即点即用、交互和体验保持统一性等诸多特点,随着浏览器对HTML5支持能力的提高,Web应用在操作体验上也可以无限接近甚至超过客户端。
对于用户来说,他们并不那么关注自己用的应用是客户端应用还是Web应用,他们只希望用最简单有效的方式满足他们的需求。快餐文化的侵袭,让用户厌倦了在各种终端上来回拷贝资料,厌烦了操作系统和各种软件的重复安装或升级。互联网是一个完整的世界,不能因为终端的不同而被割裂开来。而能跨平台跨终端的浏览器,无疑是融合的最好阵地。
开发者说:盈利才能直起腰板
国内手机应用商店一片火热,但大量开发者却不能从它上面赚到钱。相关数据显示,2011年中国手机应用开发者实现盈利的仅占13.7%,亏损的高达64.5%,另外20.8%正努力做到保本。可见,应用商店靠海量应用捕捉到了用户,但开发者并没有与此真正形成良性的生态系统。
究其原因,应用商店模式之中,没有普遍的用户付费习惯、没有成熟的广告和增值服务系统,很难打通社交、电子商务和支付。而在Web平台上,上述问题能更简单的得到解决。
首先,众多知名网站都有着很高的点击率,有巨大的流量导入。比如百度新首页、新浪微博、腾讯Q+这些互联网开放平台,已经逐渐建立了一些增值服务的商业模式。
其次,大大降低了开发者的开发成本和维护难度。相对于Android的开源导致各个版本分裂,一款应用需要重复开发多次,HTML5带来的好处则不言而喻。第一,随着各国各相关企业对HTML5支持的逐步完善,开发者只需开发一款应用即可在多个移动平台和有线平台运用,大大减少了应用的二次开发成本;第二,利用HTML5开发应用可以在网页上直接调试和修改,版本更新会更快、更方便,能够节省大量的成本。第三,Web应用不像客户端应用对渠道发行有強烈的依赖,基于浏览器用户能更方便的体验产品,开发者更容易触及到海量的用户。
科技巨头说:做好革命的准备
HTML5成为未来互联网技术的制高点。围绕这个制高点的标准,各大科技巨头们已经展开激烈的争夺。
2010年2月底,苹果发布其创新产品iPad,表明不再支持Flash;2011年1月,苹果新官网上线,完全基于HTML5;iOS里苹果的自带浏览器Safari也是支持HTML5;去年7月,苹果还收购了html5.com域名。而谷歌同样也极力支持HTML5的推广,比如Youtube就已经采用了HTML5,Chrome浏览器也很早就宣布全面支持HTML5。
不过,由于各方势力角逐割据,在相当长一段时间里,Web应用和应用商店之间将会保持着竞争和互补的关系,因为,并不是所有应用都适合做成Web形式,同时也不是所有应用都需要开发一个客户端。
Web应用软件系统测试研究 篇4
大多数Web系统采用Browser/Server结构。一个典型的Web系统的结构示意图如图1所示, 包括客户端浏览器、Web应用服务器、数据库服务器、网络及中间件。其中客户端浏览器可以是一般浏览器、手机浏览器和平板电脑等, 例如Internet Explorer、Netscape等;Web应用服务器用于发布Web页面, 接收来自客户端的请求, 并把请求结果返回客户端, 常用的Web应用服务程序有Apache、Tomcat等;数据库服务器保存数据库, 常用的有Oracle、SQL Server等;网络及中间件则提供客户端的请求到Web服务器的通道, 网络可以是Internet/Intranet/Extranet, 也可能是局域网。对于重要的系统防火墙与CA服务器也是必不可少的。因此, Web系统的测试是一项比较复杂的测试工作。
Web应用软件的测试与传统软件相比, 既有相同之处, 又有不同的地方。文献2提出了寻找PHP应用程序中的故障的方法。文献3提出一种Web应用软件结构模型, 该模型分为函数级、函数群级、对象级、对象群级和应用级共5级。就Web应用软件的系统测试进行研究, 从Web应用软件的组成:网页和网站两个层次展开。
1 Web应用软件的网页测试
网页, 是网站中的一个页面, 由文字、图形、动画、音频、视频和超级链接等组成, 通常是HTML格式, 文件扩展名可以是.html、.htm、.asp、.aspx、.php、.jsp等。用户通过对浏览器的操作, 搜索查看所需要的信息。网页测试包括功能测试和可用性测试。
1.1 网页的功能测试
网页的功能测试包括内容测试、链接测试、表单测试和Cookies测试。
内容测试用来测试Web系统提供信息的正确性、准确性和相关性。内容测试通常使用一些文字处理软件进行自动测试, 例如Microsoft Word的“拼音与语法检查”功能, 同时还需要人工测试文本内容和网页上图片的文字描述。
链接是Web软件的一个主要特征, 它使用户实现页面之间的切换。链接测试需要测试3个方面的内容:首先是测试所有链接是否按指示的那样确实链接到了应该链接的页面;其次测试所链接的页面是否存在;最后保证Web网站上没有孤立的页面, 所谓孤立页面是指没有链接指向该页面, 只有知道正确的URL地址才能访问。链接测试可以手动进行, 也可以自动进行。链接测试必须在集成测试阶段完成, 也就是说, 在整个Web网站的所有页面开发完成之后才进行链接测试。
表单是一些需要在线显示和填写的表格, 例如用户注册、登陆、信息提交等。表单测试主要是模拟表单提交过程, 测试表单提交是否准确。表单测试主要考虑以下几个方面: (1) 表单提交应当模拟用户提交, 测试是否完成功能。例如使用表单来进行在线注册, 要测试提交按钮能否正常工作, 当注册完成后能否返回注册成功的消息。 (2) 测试提交操作的完整性, 以测试提交给服务器的信息的正确性。 (3) 如果使用表单收集配送信息, 应确保系统能够正确处理这些数据, 需要测试服务器能否正确保存这些数据, 而且后台运行的程序能否正确解释和使用这些信息。 (4) 要测试数据的正确性和异常情况的处理能力。 (5) 表单测试时, 会涉及到数据校验问题。例如, 用户注册页面中在某可选字段区中不填写内容提交表单, 在某必填字段区中不填写内容提交表单, 输入超出字段所能接受的最大长度的字符串。对于有固定操作流程的表单测试, 可以考虑自动化测试工具。
Cookies是由网页服务器发送出来存储在客户端浏览器目录的非常小的文本文件, 通常用来存储用户信息和用户在某些应用系统上的操作序列, 当一个用户使用Cookies访问了某一个应用系统时, Web服务器将发送关于用户的信息, 并把该信息以Cookies的形式存储在客户端计算机上, 这可用来创建动态和自定义页面或者存储登录等信息。B/S结构Cookies中存放的信息更多。如果Web系统是用了Cookies, 需要对它们进行测试。测试内容包括:Cookies是否能正常工作;Cookies是否按预定的时间进行保存;刷新对Cookies有什么影响等。例如:如果在Cookies中保存了注册信息, 应确认该Cookies能够正常工作而且已对这些信息进行加密。如果使用Cookies来统计次数, 需要验证次数累计正确。
1.2 网页的可用性测试
网页的可用性测试包括导航测试、图形测试和界面测试。
导航描述了用户在一个页面内操作的方式, 可以在不同的用户接口控制之间, 例如按钮、对话框、列表和窗口等;或在不同的连接页面之间。导航测试的内容包含:导航是否直观?Web软件的主要部分是否可以通过主页访问?Web软件是否需要站点地图、搜索引擎或其他的导航器帮助?测试导航条、菜单、连接的风格是否一致?测试各种提示是否准确, 确保用户凭直觉就知道是否还有内容, 内容在什么地方。最好让最终用户参与导航测试, 效果将更加明显。
在Web软件中, 适当的图片和动画既能起到广告宣传的作用, 又能起到美化页面的功能。一个Web软件的图形可以包括图片、动画、边框、颜色、字体、背景、按钮等。图形测试的内容有: (1) 测试图形是否有明确的用途, 图片或动画不要胡乱地堆在一起, 以免浪费传输时间。 (2) 测试所有页面字体的风格是否一致。 (3) 测试背景颜色与字体颜色和前景颜色是否搭配。 (4) 图片的大小和质量也是一个很重要的因素, 一般采用JPG或GIF压缩, 最好能使图片的大小在30KB以下。 (5) 测试文字环绕是否正确。 (6) 测试图片能否正常加载。
界面测试是对整个Web系统的页面结构设计的测试, 是用户对系统的一个整体感受。例如, 当用户浏览Web网站时, 应考虑:页面各元素的位置、颜色、大小比例是否协调?是否感到舒适?用户在界面中的操作是否容易, 能否凭直觉就知道要找的信息在什么地方?整个Web应用系统的设计风格是否一致?
2 Web应用软件的网站测试
所谓网站, 就是指在Internet上, 根据一定的规则, 使用HTML等工具制作的用于展示特定内容的相关网页的集合。用户通过网页浏览器来访问网站, 获取自己需要的信息或者享受网路服务。网站测试在网页测试的基础之上还包括功能测试、性能测试、安全性测试和兼容性测试。
2.1 网站的功能测试
网站的功能测试包括数据库测试、Web网站特定的功能需求测试和设计语言测试。
数据库在Web网站中具有十分重要的作用, 数据库为Web网站的管理、运行、查询和实现用户对数据存储的请求等提供空间。在Web应用软件中, 最常用的数据库类型是关系型数据库, 可以使用SQL对信息进行处理。数据库测试是Web网站测试的一个基本组成部分。测试人员需要了解后台数据库的内部结构和设计概念, 执行详细的数据库测试计划, 至少能在程序的某个流程点上并发地查询数据库。数据库测试要测试数据完整性、数据有效性、数据操作和更新。
测试人员需要依据程序需求规格说明书对Web网站特定的功能需求进行测试。例如:开发一个在线考试系统, 测试用户可能进行的所有操作:考生登录后自动组卷, 考生答题结束后自动收卷, 试卷自动分析和评阅, 考生查询成绩, 教师试题录入等。
不同的Web设计语言版本的差异可以引起客户端或服务器端严重的问题, 例如使用哪种版本的HTML;尤其在分布式环境中开发时, 开发人员都不在一起, 这个问题就显得尤为重要。除了HTML的版本问题外, 使用Java、Java Script、Active X、VBScript或Perl等开发的应用程序也要在不同的版本上进行测试。
2.2 网站的性能测试
网站的性能测试对于网站的运行而言非常重要, 主要包括负载测试、压力测试和连接速度测试。
负载测试是为了测量Web系统在某一负载级别上的性能, 以保证Web系统在需求范围内能正常工作。负载级别可以是某个时刻同时访问Web系统的用户数量;也可以是在线数据处理的数量。负载测试包括的内容有:测试Web系统最多能允许多少个用户同时在线?如果超过了这个数量, 会出现什么现象?Web系统能否处理大量用户同时对同一个页面的请求?负载测试应该安排在Web系统发布以后, 在实际的网络环境中进行测试。一般使用自动化工具来进行。
压力测试是测试Web系统的限制和故障恢复能力, 也就是测试Web应用系统会不会崩溃, 在什么情况下崩溃。压力测试的区域包括表单、登录和其他信息传输页面等。压力测试应该关注:瞬间访问高峰, 每个用户传送大量数据, 长时间的使用。压力测试需要利用一些辅助工具对Web系统进行模拟测试。
连接速度测试是对打开网页的响应速度的测试。用户连接到Web应用系统的速度根据上网方式的不同而不同, 可能是电话拨号上网、宽带上网、局域网、有限电视网、光纤网、移动网络。不管用户使用哪种方式, 系统都不能让用户在访问一个页面时等太长的时间。如果访问一个页面Web系统响应时间太长 (例如超过10秒钟) , 用户就会因失去耐心而离开。有些页面有超时的限制, 如果响应速度太慢, 用户可能还没来得及浏览内容, 就需要重新登录了。而且连接速度太慢, 还可能引起数据丢失, 使用户得不到真实的页面。
2.3 网站的安全性测试
对于有交互信息的网站以及电子商务网站, 网络安全问题尤为重要, 需要对Web系统进行安全性测试, 包括目录测试、SSL套接字测试、登录验证测试、日志文件和脚本语言的测试。
目录安全是Web安全性测试中不可忽略的问题。如果Web系统处理不当, 通过简单的URL替换和推测, 会将整个Web目录暴露给用户, 这样会造成Web的安全性隐患。每个目录下应该有Index.html或严格设置Web服务器的目录访问权限, 这样就不会显示该目录下的所有内容。
SSL (Security Socket Layer) 是由Netscape首先发表的网络数据安全传输协议, 它利用公开密钥/私有密钥的加密技术, 位于HTTP层和TCP层之间, 建立用户和服务器之间的加密通信, 从而确保所传送信息的安全性。如果Web系统使用了SSL, 需要测试是否有相应的替代页面, 适用于3.0以下版本的浏览器, 这些浏览器不支持SSL。当用户进入或离开安全站点的时候, 测试是否有相应的提示信息。还要测试是否有连接时间限制, 超过限制时间后会出现什么情况等。
目前很多网站都需要用户注册后登录使用, 从而校验用户名和匹配的密码, 以验证其身份, 阻止非法用户登录。登录测试的主要测试内容有:测试用户名和输入密码是否大小写敏感?测试有效和无效的用户名和密码?测试用户登录是否有次数限制, 如果有次数限制, 超出限制是否还能通过验证?测试是否限制从某些IP地址登录?测试密码选择是否有规则限制?测试哪些网页和文件需要登录才能访问和下载?测试是否可以不登录直接浏览页面?测试Web应用系统是否有超时限制?
日志文件对于保证Web应用系统的安全性至关重要, 需要测试相关信息是否写进了日志文件, 是否可追踪。
脚本语言是常见的安全隐患。每种语言的细节有所不同。有些脚本允许访问根目录, 其他脚本只允许访问邮件服务器。但有经验的黑客可以利用这些缺陷攻击和使用服务器系统。测试人员需要找出站点使用了哪些脚本语言, 并研究该语言的缺陷, 测试是否构成安全问题。
2.4 网站的兼容性测试
兼容性测试用来测试Web系统是否可以在用户使用的机器上运行。如果用户是全球范围的, 需要测试各种操作系统、浏览器以及浏览器各种设置下Web系统能否正常工作, 包括平台测试和浏览器测试。
市场上有很多不同的操作系统类型, 最常见的有Windows、Unix、Macintosh、Linux等。Web网站的最终用户究竟使用哪一种操作系统, 取决于用户系统的配置。这样就可能会发生兼容性问题。同一个应用可能在某些操作系统下能正常运行, 但在另外的操作系统下可能会运行失败。因此, 在Web系统发布之前, 需要在各种操作系统下对Web系统进行兼容性测试。而且客户端分辨率设置的不同也可能会使网页内容显示面目全非, 影响用户的正常使用, 还要测试页面版式在640x400、600x800或1024x768的分辨率模式下是否显示正常?
浏览器是Web系统客户端最核心的软件, 来自不同厂商的浏览器对Java、Java Script、Active X或不同的HTML有不同的支持, 甚至有些HTML命令或脚本只能在某些特定的浏览器上运行。例如, Active X是Microsoft的产品, 是为Interne Explorer而设计的, Netscape本身是不支持Active X的, 需要安装插件。另外, 框架和层次结构风格在不同的浏览器中也有不同的显示, 甚至根本不能显示。不同的浏览器对安全性和Java的设置也不一样。浏览器测试的一个方法是创建一个兼容性矩阵, 在该矩阵中, 测试不同厂商、不同版本的浏览器对某些构件和设置的适应性。另外, 浏览器中许多设置也会影响Web系统功能, 例如缓存设置、Cookies设置、显示设置、安全设置等, 还需要测试浏览器不同设置是否影响Web系统的功能。
3 结语
Web应用软件的测试同传统软件的测试一样, 测试工作应贯穿其设计和开发的整个过程, 就Web应用软件的系统测试进行研究, 讨论了针对网页和网站展开的各项测试。但对于Web应用软件测试用例的设计和自动化测试还需进一步研究。
参考文献
[1]郭玉环, 高建华.Web应用程序的动态测试生成方法.计算机工程与设计, 2013, 34 (3) :930-934.
[2]柳纯录.软件评测师教程.北京:清华大学出版社, 2010.
web软件界面设计原则 篇5
2.需求分析
在需求分析阶段,主要针对界面交互相关问题,对用户进行若干调研。
主要包括以下内容
·受众用户群调查·系统使用环境调查·受众用户使用习惯调查·用户对旧版本软件使用情况调查
这一阶段,由于成本原因,我并没有直接访问客户进行调查。工作主要是提出某些具体问题,由需求调研人员,以问卷或口头问答方式,对客户进行调研。另外,公司经验丰富的客服人员和市场人员,也是非常重要的需求来源之一。
本系统的客户群主要为国家省市下属质检单位,最终受众年龄从年轻到较高龄都有。对于普通国家机关人员,一般对计算机系统和网络不够熟悉,计算机环境一般,甚至比较差,少有配置优良的环境。在这种环境下,用户对计算机使用一般没有使用倾向,大多更适应手工操作。对本系统的前代使用,最主要意见是使用困难,不方便。
还有其他具体调查反馈,如用户基本不使用鼠标右键,年龄较大的用户难以看清密集的较小文字等等。
3.界面设计原则
在概要设计阶段,根据需求阶段的调研结果,我整理了系统界面设计的基本原则。因为在代码开发阶段,很多时候界面的具体制作是由开发人员直接写代码,因此必须确定一定的原则和规范,以保证系统界面的统一。
一般适用原则
·简单明了原则:用户的操作要尽可能以最直接最形象最易于理解的方式呈现在用户面前。对操作接口,直接点击高于右键操作,文字表示高于图标示意,尽可能的符合用户对类似系统的识别习惯。
·方便使用原则:符合用户习惯为方便使用的第一原则。其它还包括,实现目标功能的最少操作数原则,鼠标最短距离移动原则等。
·用户导向原则:为了方便用户尽快熟悉系统,简化操作,应该尽可能的提供向导性质的操作流程。
·实时帮助原则:用户需要能随时响应问题的用户帮助。
·提供高级自定义功能:为熟悉计算机及软件系统的高级用户设置自定义功能,可以对已经确定的常规操作以及系统的方方面面进行符合自身习惯的自定义设置。包括常规操作、界面排版、界面样式等种种自定义。
·界面色彩要求:计算机屏幕的发光成像和普通视觉成像有很大的不同,应该注意这种差别作出恰当的色彩搭配。对于需用户长时间使用的系统,应当使用户在较长时间使用后不至于过于感到视觉疲劳为宜。例如轻松的淡彩为主配色,灰色系为主配色等等。切忌色彩过多,花哨艳丽,严重妨碍用户视觉交互。
·界面平面版式要求:系统样式排版整齐划一,尽可能划分不同的功能区域于固定位置,方便用户导航使用;排版不宜过于密集,避免产生疲劳感。
B/S构架适用原则
·页面最小:由于Web的网络特性,尽可能减小单页面加载量,降低图片文件大小和数量,加快加载速度,方便用户体验。
·屏幕适应:Web界面需要适应不同用户屏幕大小。
·浏览器兼容:需要适应不同浏览器浏览效果,虽然目前可不考虑不同浏览器差别,但仍需考虑IE浏览器版本差异带来的客户端不同效果。
·最少垂直滚动:尽可能减少垂直方向滚动,尽可能不超过两屏。
·禁止水平滚动:由于将导致非常恶劣的客户体验,尽可能禁止浏览器水平滚动操作。
·避免隐藏(右键)操作:浏览器的右键操作不符合用户体验习惯,尽可能避免。
本系统应用原则
·瘦客户端要求:由于客户应用环境配置大多较低,除服务器可单独配置较灵活外,应该保证瘦客户端,使用户容易使用。例如尽量不要使用复杂的JS脚本和HTC组件,不要在客户端使用IE整合XML/XSLT等等。
·大数据量表格的水平扩展要求:本系统中存在大数据量的列表,需要较大的交互界面支持,为避免水平滚动,应尽可能获取大的屏幕水平空间。
·桌面面板导航简化操作:为了实现方便简捷的用户操作,应该保证用户绝大多数操作可通过首页桌面面板的导航来实现。
·用户自适应定义:提供较多的可订制功能,尤其对桌面面板提供强大的定制功能;使用户能够将最常用的功能定义到桌面面板,每次登录即可直接使用,简化用户操作。
·用户常用操作记录定义:对某些需定义操作的功能如查询、搜索等,提供系统自动记忆和客户定制功能,系统可自动记忆用户前1~3次操作,或者用户可自定义操作记录,方便以后使用。
·大数据量表格的水平扩展要求:本系统中存在大数据量的列表,需要较大的交互界面支持,为避免水平滚动,应尽可能获取大的屏幕水平空间。
4.系统分析
在概要设计过程中,界面设计人员需要浏览需求分析报告,了解用户的工作流程,和整个系统功能,再根据这些原始需求功能,归纳整理分析,并针对用户交互设计需要,提出意见,参与系统设计。
其中包括对原始功能的分类归纳,提出系统交互需要的新功能,对用户功能实现的优先级进行定义等等。
例如,提出用户自定义快捷面板功能,常用操作自动记录功能等,需要在概要设计时尽早提出,以方便作好系统规划。
Web应用软件 篇6
关键词 Web应用软件 计算机 测试 分析
中图分类号:TP31 文献标识码:A
软件测试的根本目的在于找出问题并以此为基础进行修正完善,Web应用软件性能优势也存在测试难题,只有对发展情况充分了解,才能以此为基础进行深入思考与研究。
1测试的目的
随着计算机应用范围扩大,其应用软件的质量对更多领域具有关键影响,任何细微差错都有可能对社会、经济、生活造成大规模损害。而软件测试是保证软件质量的有效手段,因此也成为开发中必不可少的环节。数据显示,当前软件开发过程中,测试环节投入已占整体的40%左右。
Web应用以不需安装、不受限于硬件平台等优势迅猛发展,已逐渐成为计算机应用的主流,但也由于其异构、并发、分布、不依赖于平台等特点,问题复杂性与可控难度随之加剧,Web应用测试与分析具有更强的现实意义。
基于以上,Web应用测试的主要目的在于:保证其功能的正确性、对浏览器的兼容性、性能的优良性,从而确保在实际应用中的安全与可用。其根本目的是找出应用中的错误。
2现阶段关于Web应用软件的测试与分析
基于Web应用软件的自身特性,测试内容设定需更严谨。现阶段基于传统软件测试基础已发展出针对Web软件应用的测试技术与工具,但测试方法尚不成熟。
2.1内容
基于Web应用的复杂性,对其测试与分析的内容也需更加细致、全面。从其特点与要求出发,对Web应用软件的测试与分析的内容主要包括:功能、性能、安全性、可用性、兼容性、接口。其中涉及界面、覆盖性、配置、链接、表单、Cookie、设计语言、数据库、回归、任务与业务逻辑、响应速度、负载能力、压力恢复能力等多方面测试内容。
2.2方法
采取适当的测试方法是完成测试目标、提高测试成效的必备条件。软件测试的方法主要可分为静态测试、动态测试两方面,静态测试主要针对文档与源程序进行检测与分析,在不运行软件的情况下发现应用的逻辑与编码错误;动态测试主要包括白盒测试、黑盒测试、灰盒测试,是在运行软件的前提下测试软件执行效果,对其正确性、安全性与可用性进行判断。其中白盒测试与黑盒测试的测试角度各有偏向并且较为极端,而灰盒测试介于二者之间,对高层设计、环境、操作等均有涉及,特别适用于Web应用的测试。
为保证测试严谨性可按测试周期将测试分为四个环节:单元测试、集成测试、系统测试、验收测试。
此外,选用合适的测试模型能够为软件测试效率提供帮助。常用的软件测试模型有V模型、W模型、H模型、X模型、前置测试模型等,各模型具有自身特性与适用方向,并对其它模型的漏洞具有修正性,因此,适用测试模型的关键在于模型的选择与搭配。
3思考与建议
Web应用软件的功能性能优势是基于其体系结构的特性而建立起来的,因此对其的测试与分析也应在传统软件测试体系基础上更具针对性。
3.1特性与难点
区别于传统软件,Web应用软件体系结构复杂、层次多,这也是Web程序易出错的主要原因。另一方面,Web应用的使用环境多样、复合技术多、兼容性要求高,是造成其测试难的主要原因。与此同时,用户量大、运行实时性要求高是其最主要的特性与要求。基于此,对于Web的测试需要符合其实际特性,并跟上发展节奏,否则测试体系的不成熟将成为制约Web应用软件发展的因素。
3.2关于现阶段研究方法的思考
现阶段对Web应用测试已有一定的理论与实践基础,其技术与工具能够支持测试工作,但其中存在较多漏洞,因此现阶段对其研究的重点应集中于以下方面:(1)对现有技术与工具的漏洞进行针对性修正,按层级、周期、面向对象进行分层分析与试验;(2)针对Web应用的测试体系的搭建与完善。
3.3关于性能测试的建议
基于以上观点,从性能测试方面提出建议,以期为Web测试体系优化提供参考。
在性能测试中通常采用的主要手段是压力测试,良好的性能测试需在提供压力的基础上对后台进行监测,并快速分析数据,从而找出被测系统的临界值。基于对此的试验与思考,需从以下几方面深入研究:(1)服务器端资源资源监控问题;(2)测试工具的开发。主要实现手段可通过:脚本语言的掌握、测试工具的使用程度、测试手段的丰富等方面。
4结语
测试与研究对Web应用软件的质量具有重要意义,是其发展的保障。基于对当前状态的论述与总结,本文对Web应用软件测试与研究的重点提出观点,并从性能测试环节给出一定建议。文章并非对具体技术与工具进行研究,而是以给出思路为主,以期对后续具体试验及开发工作起到参考与指引作用。
(作者学号:1330514)
参考文献
[1] 郭华杰.灰盒测试方法研究.天津大学,2006(02).
[2] 路晓丽.Web应用测试技术研究.西北大学,2009(06).
Web应用测试的研究 篇7
随着Web2.0的推出,基于Web的应用越来越深入到我们工作和生活的方方面面:商业、工业、银行、财政、教育、政府和娱乐,许多传统的信息和数据库系统正在被移植到互联网上,以电子商务为典型代表的应用系统越来越普及。尤其在现代企业应用中,各种信息系统在原来的基础上,由基于C/S方式向基于B/S方式转换,逐渐过渡为基于Web的MIS、ERP、EIP乃至CIM的企业业务IT系统,从而使企业管理不再局限于企业内部,而是通过Internet扩展到遍布全球的客户、供应商、合作伙伴等各个环节。
Web应用的日益广泛、日益复杂,使得基于Web的应用系统的实施方法备受关注。目前,在大多数情况下,开发基于Web的系统具有随意性,其测试缺乏系统的方法。因此,研究Web应用的测试是十分必要的,也是十分紧迫的。
2 Web应用的属性
基于Web的系统和应用不同于其他的软件类别,它们具有自身独特的一些属性,因此Web应用的开发过程和测试方法也必将不同于传统软件工程的过程和方法。一个典型的Web应用应该具有以下属性:
(1)网络集约性[1]。一个典型的Web应用驻留于某一个网络的,它必须服务于变化多样的客户群的需要。
(2)内容驱动性。在多数情况下,一个Web应用的主要功能是使用超媒体来表示文本、图形、音频和视频内容给终端用户。
(3)即时性。基于Web的应用具有其他任何软件类型中都没有的即时性。对于某些Web应用而言,甚至是以小时和分秒为单位进行更新。
(4)安全性。由于Web应用是通过网络访问可达的,为了保护敏感的内容和提供安全的数据传输模式,整个Web应用的基础设施和应用本身必须实现强的安全措施。
(5)美学。Web比通常意义上的软件开发使艺术和技术在更大范围内得到结合。美学可能和技术设计在同样的程度上决定应用的成功。
3 Web应用的测试
正是Web应用有上述独特的属性,基于Web系统的测试、确认和验收是一项重要而富有挑战性的工作。基于Web的系统测试与传统的软件测试不同,它不但需要检查和验证是否按照设计的要求运行,而且还要测试系统在不同用户的浏览器端的显示是否合适。重要的是,还要从最终用户的角度进行安全性和可用性测试[2]。因此,我们必须为测试和评估复杂的基于Web的系统研究新的方法和技术。
3.1 界面测试
(1)整体界面测试。整体界面是指整个Web应用系统的页面结构以及页面风格的设计。主要测试整个Web系统的页面布局是否美观、合理;页面在窗口中的显示是否正确、美观。分辨率测试,页面版式在不同分辨率模式下是否显示正常,字体是否太小以至于无法浏览,,文本和图片是否对齐等;验证所有页面字体的风格是否一致;背景颜色应该与字体颜色和前景颜色相搭配。
(2)导航测试。导航描述了用户在一个页面内操作的方式,在不同的用户接口控制之间,例如按钮、对话框、列表和窗口,或在不同的连接页面之间。导航测试的另一个重要方面检查是Web应用系统的页面结构、导航、菜单、连接的风格是否一致。确保用户凭直觉就知道Web应用系统里面是否还有内容,内容在什么地方。
(3)图形测试。在Web应用系统中,适当的图片和动画既能起到广告宣传的作用,又能起到美化页面的功能。一个Web应用系统的图形可以包括图片、动画、边框、颜色、字体、背景、按钮等。图形测试要确保图形有明确的用途,图片或动画不要胡乱地堆在一起,以免浪费传输时间。Web应用系统的图片尺寸要尽量地小,并且要能清楚地说明某件事情。
(4)内容测试。内容测试用来检验Web应用系统提供信息的正确性、准确性和相关性。信息的正确性是指信息是可靠的还是误传的。例如,在商品价格列表中,错误的价格可能引起财政问题甚至导致法律纠纷;信息的准确性是指是否有语法或拼写错误。
3.2 功能测试
(1)链接测试。链接是Web应用系统的一个主要特征,它是在页面之间切换和指导用户去一些不知道地址的页面的主要手段。链接测试可分为三个方面。首先,测试所有链接是否按指示的那样确实链接到了该链接的页面;其次,测试所链接的页面是否存在;最后,保证Web应用系统上没有孤立的页面,所谓孤立页面是指没有链接指向该页面,只有知道正确的URL地址才能访问。链接测试必须在集成测试阶段完成,也就是说,在整个Web应用系统的所有页面开发完成之后进行链接测试。链接测试可以自动进行,一般可以使用Xenu Link Sleuth以及HTML Link Validator等工具自动进行[3]。
(2)表单测试。当用户给Web应用系统管理员提交信息时,就需要使用表单操作,例如用户注册、登陆、信息提交等。在这种情况下,我们必须测试提交操作的完整性,以校验提交给服务器的信息的正确性。如果使用了默认值,还要检验默认值的正确性。如果表单只能接受指定的某些值,则也要进行测试。
(3)Cookies测试。Cookies通常用来存储用户信息和用户在某应用系统的操作,当一个用户使用Cookies访问了某一个应用系统时,Web服务器将发送关于用户的信息,把该信息以Cookies的形式存储在客户端计算机上,这可用来创建动态和自定义页面或者存储登录等信息。如果Web应用系统使用了Cookies,就必须检查Cookies是否能正常工作。测试的内容可包括Cookies是否起作用,是否按预定的时间进行保存,刷新对Cookies有什么影响等。
(4)设计语言测试。Web设计语言版本的差异可以引起客户端或服务器端严重的问题,例如使用哪种版本的HTML等。当在分布式环境中开发时,开发人员都不在一起,这个问题就显得尤为重要。除了HTML的版本问题外,不同的脚本语言,例如Java、Java Script、Active X、VBScript或Perl等也要进行验证。
(5)数据库测试。在Web应用技术中,数据库起着重要的作用,数据库为Web应用系统的管理、运行、查询和实现用户对数据存储的请求等提供空间。在Web应用中,最常用的数据库类型是关系型数据库,可以使用SQL对信息进行处理。在使用了数据库的Web应用系统中,一般情况下,可能发生两种错误,分别是数据一致性错误和输出错误。数据一致性错误主要是由于用户提交的表单信息不正确而造成的,而输出错误主要是由于网络速度或程序设计问题等引起的,针对这两种情况,可分别进行测试。
(6)应用程序特定的功能需求测试。特定功能的测试要求测试人员对于项目的需求非常熟悉,需要对应用程序特定的功能需求进行验证。
3.3 性能测试
(1)连接速度测试。用户连接到Web应用系统的速度根据上网方式的变化而变化,他们或是电话拨号,或是宽带上网。当下载一个程序时,用户可以等较长的时间,但如果仅仅访问一个页面就不会这样。如果Web系统响应时间太长(例如超过5秒钟),用户就会因没有耐心等待而离开。另外,有些页面有超时的限制,如果响应速度太慢,用户可能还没来得及浏览内容,就需要重新登录。而且,连接速度太慢,还可能引起数据丢失,使用户得不到真实的页面。
(2)负载测试。负载测试是为了测量Web系统在某一负载级别上的性能,以保证Web系统在需求范围内能正常工作。负载级别可以是某个时刻同时访问Web系统的用户数量,也可以是在线数据处理的数量。例如:Web应用系统能允许多少个用户同时在线;如果超过了这个数量,会出现什么现象;Web应用系统能否处理大量用户对同一个页面的请求。
(3)压力测试。负载测试应该安排在Web系统发布以后,在实际的网络环境中进行测试。因为一个企业内部员工,特别是项目组人员总是有限的,而一个Web系统能同时处理的请求数量将远远超出这个限度,所以,只有放在Internet上,接受负载测试,其结果才是正确可信的。压力测试是测试系统的限制和故障恢复能力,也就是测试Web应用系统会不会崩溃,在什么情况下会崩溃。压力测试的区域包括表单、登录和其他信息传输页面等。
3.4 兼容性测试
(1)平台测试。市场上有很多不同的操作系统类型,最常见的有Windows、Unix、Macintosh、Linux等。Web应用系统的最终用户究竟使用哪一种操作系统,取决于用户系统的配置。这样,就可能会发生兼容性问题,同一个应用可能在某些操作系统下能正常运行,但在另外的操作系统下可能会运行失败。
因此,在Web系统发布之前,需要在各种操作系统下对Web系统进行兼容性测试。
(2)浏览器测试。浏览器是Web客户端最核心的构件,来自不同厂商的浏览器对Java、Java Script、Active X、plugins或不同的HTML规格有不同的支持。例如,Active X是Microsoft的产品,是为Internet Explorer而设计的,Java Script是Netscape的产品,Java是Sun的产品等等。另外,框架和层次结构风格在不同的浏览器中也有不同的显示,甚至根本不显示。
3.5 安全性测试
(1)目录设置。Web安全的第一步就是正确设置目录。每个目录下应该有index.html或main.html页面,这样就不会显示该目录下的所有内容。另外,要严格控制目录的权限。
(2)SSL。很多站点使用SSL进行安全传送。你知道你进入一个SSL站点是因为浏览器出现了警告消息,而且在地址栏中的HTTP变成HTTPS。如果开发部门使用了SSL,测试人员需要确定是否有相应的替代页面。当用户进入或离开安全站点的时候,请确认有相应的提示信息。是否有连接时间限制;超过限制时间后出现什么情况。
(3)登录。有些站点需要用户进行登录,以验证他们的身份。这样对用户是方便的,他们不需要每次都输入个人资料。你需要验证系统阻止非法的用户名/口令登录,而能够通过有效登录。用户登录是否有次数限制;是否限制从某些IP地址登录;如果允许登录失败的次数为3,你在第三次登录的时候输入正确的用户名和口令,能通过验证吗;口令选择有规则限制吗;是否可以不登录而直接浏览某个页面;Web应用系统是否有超时的限制,也就是说,用户登录后在一定时间内没有点击任何页面,是否需要重新登录才能正常使用。
(4)日志文件。在后台,要注意验证服务器日志工作正常。日志是否记所有的事务处理?是否记录失败的注册企图,是否记录被盗信用卡的使用,是否在每次事务完成的时候都进行保存,是否记录IP地址,是否记录用户名。
(5)脚本语言。脚本语言是常见的安全隐患。每种语言的细节有所不同。有些脚本允许访问根目录。其他只允许访问邮件服务器,但是经验丰富的黑客可以将服务器用户名和口令发送给他们自己。找出站点使用了哪些脚本语言,并研究该语言的缺陷。还要需要测试没有经过授权,就不能在服务器端放置和编辑脚本的问题。最好的办法是订阅一个讨论站点使用的脚本语言安全性的新闻组。
4 结论
无论是测试Internet、Intranet或者是Extranet应用程序,Web测试相对于非Web测试来说都是更具挑战性的工作。用户对Web页面质量有很高的期望。在很多情况下,就像业务功能一样,页面用于维护和发展公共关系,所以第一印象非常重要。本文从界面、功能、性能、兼容性、安全性等方面讨论了基于Web的系统测试方法。基于Web的系统测试与传统的软件测试既有相同之处,也有不同的地方,对软件测试提出了新的挑战。基于Web的系统测试不但需要检查和验证是否按照设计的要求运行,而且还要评价系统在不同用户的浏览器端的显示是否合适。重要的是,还要从最终用户的角度进行安全性和可用性测试。
参考文献
[1]Jeongeun Choi,Byoundju Choi.Test Agent System Design A[].Ewha Womans University,Proceedings of 1999 IEEE Interna-tional Fuzzy System Conference Proceedings,pp326-327,1999.
[2]何友全.软件测试方法与技巧[J].微计算机信息,2000.
Web应用的信息安全研究 篇8
随着计算机技术,特别是网络的高速发展,以Intemet为代表的信息网络必将在21世纪成为人类生产、生活的一个基本方式。由于互联网的开放性和匿名性,不可避免的存在诸多安全隐患,因此实现数据在网络传输上的机密性、完整性、不可抵赖性、 访问控制性和身份可靠性等是保证数据安全的关键所在。
Intemet应用越来越广泛,其潜在的安全隐患也充分暴露出来。一方面,Intemet分布范围广泛,具有开放和分布处理的体系结构,提高了资源共享程度和工作效率。另一方面,也带来了网络安全的脆弱性和复杂性,资源共享和分布计算增加了网络受到威胁和攻击的可能性。通过网络犯罪给国家、企业、个人造成的损失也日益严重,网络数据安全己经成为最为关心和棘手的问题。
本文主要探讨与Web应用信息相关的系统的架构、系统网络安全与防护、数据交互安全、数据库的安全等安全问题,并讨论实际中的应用。
1Web系统的架构
要保护Web应用服务,先要了解Web系统架构,图1是Web服务的一般性结构图,适用于互联网上的网站,也适用于企业内网上的Web应用架构:
用户使用通用的Web浏览器,通过接入网络(网站的接入则是互联网)连接到Web服务器上。网站上很多内容需要经常的更新,如新闻、博客文章、互动游戏等,这些变动的数据放在静态的程序中显然不适合,传统的办法是数据与程序分离,采用专业的数据库。Web开发者在Web服务器后边增加了一个数据库服务器,这些经常变化的数据存进数据库,可以随时更新。当用户请求页面时,根据用户要求的页面,涉及到动态数据的地方, 利用SQL数据库语言,从数据库中读取最新的数据,生成“完整” 页面,最后送给用户,如股市行情曲线。
除了应用数据需要变化,用户的一些状态信息、属性信息也需要临时记录(因为每个用户都是不同的),而Web服务器本来是不记录这些信息的,只管答复你的要求,“人一走茶就凉了”。 后来Web技术为了“友好”互动,需要“记住”用户的访问信息,建立了一些“新”的通讯机制:Cookie与Session。
到此,我们清楚了,Web服务器上有两种服务用数据要保证 “清白”,需要你重点保护的。一是页面文件(.html、.xml等), 这里包括动态程序文件(.php、.asp、.jsp等),一般存在Web服务器的特定目录中,或是中间件服务器上;二是后台的数据库, 如Oracle、SQL Server等,其中存放的数据的动态网页生成时需要的,也有业务管理数据、经营数据。
2Web应用系统网络的安全与防护
从Web架构上可以看出,Web服务器是必经的大门,进了大门,还有很多服务器需要保护,如中间件服务器、数据库服务器等。我们这里不考虑网络内部人员的攻击,只考虑从接入网(或互联网)来的攻击,入侵者入侵的通道有下面几个:
2.1服务器系统漏洞
Web服务器毕竟的一个通用的服务器,无论是Windows,还是Linux/Unix,都不可少的带有系统自身的漏洞,通过这些漏洞入侵,可以获得服务器的高级权限,当然对服务器上运行的Web服务就可以随意控制了。除了OS的漏洞,还有Web服务软件的漏洞,IIS也好,Tomcat也好,同样需要不断地打补丁。
2.2Web服务应用漏洞
如果说系统级的软件漏洞被关注的人太多了,那么Web应用软件的漏洞数量上就更多了,因为Web服务开发简单,开发的团队参差不齐,并非都是“专业”的高手,编程不规范、安全意识不强、因为开发时间紧张而简化测试等,应用程序的漏洞也同样可以让入侵者来去自如。
2.3密码暴力破解
一般来说帐号信息容易获得,剩下的就是猜测密码了,由于使用复杂密码是件麻烦而又“讨厌”的事,设置容易记忆的密码, 是绝大多数用户的选择。大多Web服务是靠“帐号+密码”的方式管理用户帐户,一旦破解密码,尤其是远程管理者的密码,破坏程度难以想象,并且其攻击难度比通过漏洞方式要简单的多,而且不容易被发觉。在知名的网络经济案例中,通过密码入侵的占了接近一半的比例。
3数据交互的安全
3.1Web网络数据传输的安全需求分析
随着计算机广泛应用,由于网络固有的开放性和可扩充性, 从其建立开始就存在着诸多安全问题,例如利用网络漏洞传播计算机病毒、非法侵入用户系统、入侵保密的网络信息等,最终造成经济损失甚至危及国家安全。当关键性的数据在Web网络数据传输网络传输过程中,可能会遭到各类攻击。因此我们必须运用各类服务保证其数据的机密性、完整性和可用性。
3.2网络数据安全策略
目前保障网络安全主要策略如下:
3.2.1认证和身份鉴别机制
认证是网络安全的基本机制。网络设备之间必须互相认证对方身份,才能保证正确赋予操作权力和数据的存取控制,确保数据的机密性。数据传输系统的安全性往往取决于能否正确识别用户或终端的身份。
3.2.2加密和隐蔽机制
加密技术就是改变信息使攻击者无法读懂信息的内容从而保护信息。隐藏技术是将需要保密的信息隐藏在其他信息中,使攻击者无法发现。这种机制需要采用密码技术。密码技术可以防止信息被篡改、伪造和假冒,从而确保数据的机密性、完整性和可用性。
3.2.3审计
审计是防止内部犯罪和事故后调查取证的基础。通过对一些重要的事件进行记录,从而在系统发现错误或受到攻击时能准确定位错误和发现攻击。审计信息必须具备防止非法删除和修改的措施。
3.2.4权限管理和访问控制
权限管理和访问控制是系统必备的安全手段。系统根据合法的认证,赋予某用户适当的操作权限,却不能进行越权的操作。 权利管理和访问控制一般采用角色管理办法,针对系统需要定义各种角色,如会计、财务等,然后赋予他们不同的执行权利。
4数据库的安全
数据库安全漏洞从来源上,大致可以分为四类:缺省安装漏洞、人为使用上的漏洞、数据库设计缺陷、数据库产品的bug。
4.1缺省安装漏洞
4.1.1数据库安装后的缺省用户名和密码
在主流数据库中往往存在若干缺省数据库用户,并且缺省密码都是公开的,攻击者完全可以利用这些缺省用户登录数据库。
4.1.2数据库安装后低安全级别设置
数据库安装后的缺省设置,安全级别一般都较低。如My SQL中本地用户登录和远程build主机登录不校验用户名密码;如Oracle中不强制修改密码、密码的复杂度设置较低、不限定远程链接范围、通讯为明文等。
4.2人为使用漏洞
4.2.1过于宽泛的权限授予
在很多系统维护中,数据库管理员并未细致地按照最小授权原则给予数据库用户授权,而是根据最为方便的原则给予了较为宽泛的授权。
4.2.2口令复杂度不高
弱口令:非默认的数据库口令也是不安全的,通过暴力破解,攻击者不断地输入用户名和密码组合,直到找到可以登录的一组。暴力过程可能是靠猜想,也可能是系统地枚举可能的用户名/密码组合。通常,攻击者会使用自动化程序来加快暴力过程的速度。
4.3数据库设计缺陷
4.3.1明文存储引起的数据泄密
在当前的主流数据库中,数据以明文形式放置在存储设备中,存储设备的丢失将引起数据泄密风险。
4.3.2SYSDBA、DBA等超级用户的存在
在数据库中,以sys和sa为代表的系统管理员,可以访问到任何数据;除了系统管理员,以用户数据分析人员、程序员、开发方维护人员为代表的特权用户,在特殊的时候,也需要访问到敏感数据,从而获得了权限。这些都为数据的泄密留下了极大的隐患。
4.3.3无法鉴别应用程序的访问是否合法
在现实系统维护或开发过程中,应用系统后台使用的合法数据库用户,常由于人为因素或管理不善,用户名及口令很容易泄露给第三方,第三方则可以通过命令行或管理工具直接访问密文数据,批量窃取数据。
5总结
随着越来越多的网络访问通过Web界面进行操作,Web安全已经成为互联网安全的一个热点,基于Web的攻击广为流行,SQL注入、跨站脚本等Web应用层漏洞的存在使得网站沦陷、页面篡改、网页挂马等攻击行为困扰着网站管理者并威胁着网站以及直接用户的安全。基于此,我们可从如下几个方面来消除这些风险,做到防患于未然:
(1)对网站的开发人员进行安全编码方面的培训,在开发过程避免漏洞的引入能起到事半功倍的效果。
(2)请专业的安全研究人员或安全公司对架构网站的程序和代码做全面的源码审计,修补所有发现的安全漏洞,这种白盒安全测试比较全面、深入,能发现绝大部分的安全问题。
(3)在网站上线前,使用Web应用漏洞扫描系统进行安全评估,并修补发现的问题;在网站上线后,坚持更新并使用网站安全监测系统,对整站以及关键页面进行周期和实时监测, 及时消除发现的隐患。
(4)采用专业的Web安全防火墙产品,可以在不修改网站本身的情况下对大多数的Web攻击起到有效的阻断作用。
Web使用挖掘及应用研究 篇9
近年来Internet的迅速发展,使得WWW已经成为一个巨大的、蕴涵着具有潜在价值知识的分布式信息空间,为企业决策提供了丰富资源的同时也提出了新的挑战[1]:难以准确获得所需要的信息、难以获得信息之间潜在的知识和个性化的信息服务。无论个人还是企业,现实的竞争形势要求他们对互联网上大量出现和产生的信息进行实时和深层次的分析。因此人们迫切需要一种能够从Web上快速、有效地发现资源和知识的工具-Web数据挖掘。
Web挖掘是将Web技术与数据挖掘技术结合起来,来获取Web知识的过程。Web挖掘一般的定义为:从与www相关的资源和行为中抽取感兴趣的、有用的模式和隐含信息。Web挖掘可分为3类[2]:Web内容挖掘(web content mining)、Web结构挖掘(web structure mining)和Web使用挖掘(web usage mining)。Web内容挖掘是从文档内容或其描述中抽取知识的过程。Web 结构挖掘是从WWW 的组织结构和超链接关系中推导知识。Web使用挖掘主要是从Web 的访问记录中抽取感兴趣的模式。其主要特点是对用户信息数据进行抽取、转换、分析和其它模型化处理,从中提取辅助企业决策的关键性数据。
Web使用挖掘是目前信息技术中的研究热点之一,本文在介绍Web使用挖掘的基础上,从Web使用挖掘的数据类型、过程和实际应用三个方面详细地阐述了Web使用挖掘技术。
2 Web使用挖掘
Web使用挖掘是通过挖掘Web日志记录以发现用户访问Web页面的模式、挖掘有用模式和预测用户浏览行为的技术。
2.1 Web使用挖掘的数据类型
Web使用挖掘的对象是存储在Web服务器上的日志文件上的数据项,在Web使用挖掘过程中, 有多种数据可作为Web挖掘的处理对象,包括:Server log,Proxy Server log,Client端的cookie log、用户简介、注册信息、用户对话或交易信息等,主要是Web服务器上的log 日志等。这些数据大致可分为以下几类[3]:
⑴内容数据:用户在网页上看到和使用的真实数据,主要是文本和图像。
⑵结构数据:描述网页内容如何组织的数据,页内的结构可用HTML、XML表示为树型结构,HTML标志成为树的根;页间结构可用连接不同网页的超链接来表示。
⑶使用数据:描述网页使用模式的数据,如IP地址、URL、网页引用、访问时间和日期等,表示了用户的行为模式。典型的使用数据来自服务器日志。
⑷用户资料:有关Web 站点用户的统计信息,包括用户注册信息和个人资料,如用户名、学历、职务、年龄、收入、个人爱好等。
2.2 Web使用挖掘的过程
虽然Web自身有着异质、分布、动态、无统一结构的特点,从局部来看在每个提供信息资源的Web服务器上都有一个结构比较完善的log 日志文件,对其进行挖掘是切实可行的且具有重要意义。Web使用挖掘过程一般分为三个阶段[4]:预处理、模式发现、模式分析。
2.2.1 数据预处理阶段
Web使用挖掘首先要对挖掘数据进行预处理, 其目标是将包含在多种数据源中的信息转化为适合数据挖掘和模式发现所必需的数据抽象概念, 然后在事务数据库上实施挖掘算法,以期最终获得有价值的规律。这个阶段主要包括数据清洗和事务识别两个部分。数据清洗主要是对无关记录的删除、判断是否有重要的访问没有被记录、用户的识别等。事务识别是将页面访问序列划分为代表Web事务或用户会话的逻辑单元。
2.2.2 模式识别阶段
这个阶段采用统计法、机器学习法等成熟技术,从Web使用记录中挖掘知识。实现算法可以是统计分析、聚类、分类、关联规则和序列模式识别等。对Web使用记录的挖掘,早期大多数统计的方法进行。当用户通过浏览器对Web站点进行访问时,建立统计模型对用户访问的模式进行多种简单的统计,如频繁访问页、单位时间访问数、访问数据量的时间分布图等。
2.2.3 模式分析阶段
挖掘出来的用户行为模式(集合),需要合适的工具和技术对其进行分析、解释和可视化, 从中筛选出有趣(有用) 的模式,使之成为人们可以理解的知识,否则挖掘出来的模式将得不到很好的应用。这个阶段的任务是采用合适的成熟的技术和工具,进行模式的分析,从而辅助分析人员的理解,使采用各种工具挖掘出的模式得到很好的利用。目前最常见的的模式分析方法有两种:一种是象SQL那样的知识查询机制,采用SQL 查询语句进行分析。另一种方法是将Web使用数据装入数据仓库,以便执行联机分析处理(OLAP)并提供可视化的输出结构。诸如图形化模式或为不同的值赋予不同颜色的可视化技术,可以使得数据中的总体模式或趋势变得很突出。
3 Web使用挖掘的应用
Web使用挖掘技术以用户的访问日志为源数据,可为企业或公司发现许多重要的信息。
3.1 Web使用挖掘在企业客户关系管理中的应用
随着科学技术的发展,许多行业的产品趋于成熟、同质化,产品不再是企业竞争力的唯一核心,尤其是电子商务的出现,使得客户有了更大的选择空间,如何搞好客户关系,满足客户的需要将是企业迫切需要解决的问题。
通过Web使用日志的挖掘了解客户访问模式,包括客户访问习惯、访问兴趣等,再结合对客户业务数据的挖掘,了解客户交易情况,从而来进行客户关系管理。
3.2 Web使用挖掘在企业网站建设中的应用
网站的吸引力取决于其内容和组织结构的合理设计。通过对网站访问日志记录信息的挖掘,把握用户的兴趣,有助于开展网站信息推送服务以及个人信息的定制服务,如有些学者提出了可适应站点的概念,即通过用户访问模式改进Web站点内容。网站、网页的内容和结构不是一成不变,为吸引用户访问,提高知名度,网站、网页的设计必须考虑用户的需求。Web 使用挖掘能提供用户访问网站、网页行为的信息。网站的设计者可根据这些信息来对站点的结构和内容进行修改,以适应用户的需要。比如,可根据用户对某些页面访问的频度来决定页面的链接层次和深度。
3.3 Web使用挖掘在个性化服务中的应用
随着越来越多的人使用互联网,针对某类用户提供个性化服务是吸引用户访问站点的一个有效手段。通过对网站访问日志的挖掘,获取用户访问模式信息,了解用户的意图和行为。根据用户本身情况以及网站的使用情况,为用户提供动态建议是许多市场营销中及为重要的功能。
如通过对用户存取日志文件中的存取事务进行聚类分析,发现用户的个性化搜索兴趣模式,根据个人的喜好,为每个用户定制符合其个人特色的Web站点,提供符合其兴趣要求的个性化界面。在信息的显示、网站结构及资源格式等方面动态进行定制。
4 结束语
Web 使用挖掘已成为Web 数据挖掘的研究热点之一。Web使用挖掘是为了挖掘用户访问网站的行为模式,并将其应用于网站优化、企业决策支持等活动中,以提高企业的竞争力。本文主要介绍了Web使用挖掘过程及其应用,重点分析了Web 使用挖掘的技术,最后给出了Web使用挖掘的具体应用。
参考文献
[1]Raymond Kosala,hendrik Blockeel.Web Minning Re-search:Survey[J].SIGKDD Exllorations,2000,2.
[2]韩家炜,孟小峰.Web挖掘研究[J].计算机研究与发展,2001,38(4):405-413.
[3]毛国君编著.数据挖掘原理与算法[M].北京:清华大学出版社,2005,7.
浅谈Web应用防火墙 篇10
近年来, 随着互联网的快速发展, Web网络服务以其特有的高效性、易用性、交互性和及时性博得大量企业机构的青睐, 纷纷将业务转到Web应用层。而企业的网络应用也随着网络的发展变得复杂多样, 比如邮件处理、数据存储、网络管理软件的应用等。特别是近几年Web 2.0的发展, 更使得Web服务无所不在。Web应用成为人们生活中不可缺少的一部分。然而伴随着互联网的这种飞速的发展, 网络安全却不容乐观, 网络攻击也大量转向Web应用层面。而传统防火墙不能有效阻止应用层的网络攻击, 这就需要一个能提供面向应用层的网络防护系统。
1 WAF功能及特点
1.1 WAF概述
Web服务的开放性在为企业带来丰富资源、高效率、全新工作方式的同时, 也使企业机构面临越来越多的威胁。据统计数据表明, 75%的网络攻击都发生在Web应用层[1], 可见形势非常严峻。Web应用防火墙在这种形势下应运而生, 成为防护Web应用层网络攻击最有力的武器。
Web应用防火墙, 也称为网站应用级入侵防御系统 (Web Application Firewall, 简称:WAF) 。按照国际上公认的定义, WAF是指通过执行一系列针对HTTP/HTTPS的安全策略专门为Web应用提供保护的一款产品。
据资料显示WAF早在2004年, 就被国外一些安全厂商提出, 但由于当时Web应用并不很普遍, 所面临的安全威胁也比较小, 所以很多企业用户对此的认识还比较模糊。但随着互联网的普及, 如今企业的Web应用越来越多, 面临的来自Web的信息安全风险越发突出, 因此Web应用防火墙广泛地被企业机构用户重视起来。
1.2 WAF的功能
作为一种专业的Web应用安全防护工具, WAF能应对Web应用中的各类安全威胁, 如SQL注入、跨站脚本攻击 (XSS) 、跨站请求伪造攻击 (CSRF) 、Cookie篡改以及应用层DDo S等, 并且能有效解决网页篡改、网页挂马、敏感信息泄露等安全问题, 充分保障Web应用的高可用性和可靠性[2]。
一般来讲, WAF具有以下四个组成部分, 各组成部分具有各自不同的功能, 它们协同工作, 构成一个完整的Web应用层防御系统。
(1) 审计设备:用于截获所有HTTP数据或仅满足某些规则的会话数据。
(2) 访问控制设备:实现对Web应用的访问控制, 包括主动和被动安全模式。
(3) 架构/网络设计工具:当运行在反向代理模式中时, 他们被用来分配职能、集中控制、虚拟基础结构等。
(4) Web应用加固工具:增强Web应用的安全性, 它不仅能够屏蔽Web应用固有弱点, 还能够保护由于编程错误而来带的Web应用安全隐患。
需要特别强调的是, 并非每种WAF都同时具备以上四个组成部分及其功能。
1.3 WAF的特点
WAF具有多方面的特性。1) 全面防护:能够检测和防御各类常见的Web应用攻击, 如蠕虫、黑客攻击、跨站脚本、网页盗链等;2) 深入检测:细粒度地检测并防御SYN Flood、UDPFlood、ICMP Flood、HTTP Get Flood等常见的拒绝服务攻击行为, 基于智能关联分析技术对CC攻击进行检测、防护;提供针对常见的假人攻击、创建帐号攻击、数据库攻击等;3) 高可靠性, 提供硬件BYPASS或HA等可靠性保障措施, 确保Web应用核心业务的连续性;4) 管理灵活:提供基于IP、端口、协议类型、时间及域名的灵活访问控制;基于对象的虚拟防护, 为每位用户量身定制安全防护策略, 轻松增值;支持规则的在线升级和离线升级; (5) 强大的审计功能:其能够详细记录统日志、应用访问日志以及攻击统计报, 支持标准的SYSLOG日志服务器[3]。
此外, WAF还具有多面性的特点:从网络入侵检测的角度, 可以把WAF看成运行在HTTP层上的IDS设备;从防火墙角度, WAF是防火墙系统的一个模块;从用户感知角度, 有人把WAF看作工作在网络的第三层及更高层次的“深度检测防火墙”的增强。
2 与传统防火墙的比较
作为网络中最常用的安全设备, 防火墙无处不在, 从个人PC机到企业巨型机, 防火墙都成为计算机网络系统中必不可少的组成部分。
传统防火墙工作在ISO七层模型中的网络层和传输层, 很少有涉及到网络层以上的安全防御。而如今大部分网络攻击发生在应用层, 并非网络层。传统防火墙通常使用的安全控制手段主要有包过滤、状态监测、代理服务所提供的安全防御机制是一种被动的安全模式。传统防火墙采用逐一匹配的方法, 使得计算量十分庞大。安全性越高, 检查的越多, 效率越低, 并且会导致网络传输速率减慢, 成为防火墙内外网络传输的瓶颈。安全性与效率成反比。
Web应用防火墙与传统防火墙不同, 它工作在应用层, 起着监视和隔绝应用层通信流的作用, 它可以解决传统防火墙设备束手无策的Web应用安全问题[3]。基于WAF对来自Web应用程序客户端的各类请求进行内容检测和验证, 其可以确保这些请求的安全性与合法性, 对非法的请求将予以实时阻断, 从而对各类网站站点进行有效防护[3]。国际权威测评机构NSS对WAF有着详细的测试方案, 国际组织Web应用安全联盟WASC (Web Application Security Consortium) 也发布了WAF产品评估标准, 这些都为技术人员进行产品技术选型时提供了参考, 帮助其选择最为适合自身应用环境的WAF产品[3]。
熊猫卫士软件 (中国) 有限公司总经理何支涛认为:只要有网络就需要有一个防火墙, 而原有的防火墙只是针对一些底层的信息, 比如说网络层, 传输层这样一些信息进行过滤, 进行阻断, 而应用防火墙则深究到应用层, 会对所有应用信息进行过滤, 这是本质的区别。
需要特别提醒的是, WAF是传统安全设备对应用层防护的一个有效补充, 它与传统防火墙是一个有机统一的整体, 而不是对立的个体。
3 WAF发展前景展望
Web服务已经深入到人们生活中的各个领域, 基于应用的网络攻击日益增多, 网络安全方面面临着严峻的挑战。对此, Web应用防火墙有着十分良好的发展前景与广阔的发展空间, 从2008年开始国内陆续有不少公司开发Web应用防火墙, 如传统的网络安全厂商, 新兴的专业开发Web应用防火墙的公司今年也在不断的增加, 可供用户选择的WAF产品也越来越多。目前, WAF的发展有两个方向:一是向高性能专业设备方面发展, 二是朝Web应用综合网关方面发展。
最早从事Web应用防火墙研究公司之一的杭州安恒公司认为Web应用防火墙市场即将进入井喷时期。
参考文献
[1]王宇, 陆松年.Web应用防火墙的设计与实现[J].信息安全与通信保密, 2011, (5) :104-106.
[2]葛鹏.浅谈Web应用防火墙对基于Web业务系统的保护[J].江苏科技信息, 2010, (10) :43-45.
Web应用开发的学习心得 篇11
关键词:web应用;Web1.0;Web2.0
中图分类号:TP309文献标识码:A文章编号:1007-9599 (2011) 07-0000-01
Learning Experiences of Web Application Development
Guo Haiku
(Guangdong Industry Technical College,Experimental&Training Center,Guangzhou510300,China)
Abstract:Reviews the development history of the web application development,this paper introduces the general process of learning Web development and development process of Web application.
Keywords:Web application;Web1.0;Web2.0
一、引言
所谓的Web应用,就是由网站提供的,客户端以浏览器为平台的基于Internet的应用,它不是纯静态的网页模式,而是包括网页、程序、数据库及其它数据存储形式在内的能够实现对信息的查询、增删改和交互式操作的综合应用。
二、Web1.0和web2.0
谈Web的发展就不可能不提到Web1.0和Web2.0。Web1.0时代,我们作为互联网的使用者只能被动的去接受网上的信息,这时候的网络更多的是一种单向的信息传送。任何一个会上网的人都不可能不知道Html(Hypertext Markup Language:超文本标记语言),而那时候网络提供的是一种信息浏览和简单信息交互的平台,讲求的是门户,内容,商业模式等。ASP,PHP,CGI等技术已经能基本上满足中小企业电子商务及信息发布平台建设的需要。而ASP,CGI等技术由于其自身的局限性已经不能满足各行各业各种深层次的需求而被迫走向灭亡。从互联网的发展和从事网络技术被看好以来,有着各种汇编语言背景的程序员就根据自身的语言背景去选择与他们所掌握语言相近的脚本语言,如C语言或Perl语言的程序员可能会去选择学习PHP等。而ASP作为一种服务器端脚本由于其可以包含HTML标记、普通文本、脚本命令以及微软强大的COM组件支持功能而成为很多网页爱好者学习的主流。但是无论当初你是多么喜欢和欣赏ASP,它即将走向灭亡的趋势都是不可逆转的。除非你将自己的技能排在网络开发的技术之外,或者你比较守旧,喜欢死守过时的技能不放。否则你必须根据技术的发展趋势去选择一种在未来世界更加畅通的WEB开发技术。在J2EE和.NET两种平台即将成为主流的环境下,选择JSP还是C#又成为了Web开发的一次选择。Ajax技术的逐渐成熟对Web2.0的推动起到了巨大的作用,在以前我们仅仅通过动态图片的方式来体现网页的生动这种方式之外,我们发现Web2.0的时代我们也可以作为信息的制造者来参与到互联网这个庞杂的东西之中。Google这个业界的领头者算是把Ajax用到了极致。Google Maps也是因此声名大噪。博客,维基百科,直到现在非常火热的微博,这些也都是Web2.0的经典之作。我们发现这个时候我们既是互联网的使用者同时也是互联网信息的发布者了。最典型的维基百科我们也可以作为作者去修改其中的任何一个词条。以前作为纸质出版的时代我们很难体验到作为一个作者发表自己思想所带来的成就,但是现在Web2.0很轻松的实现了我们这个梦想。总的来说,Web2.0就是一种互联网和用户双方的互动过程,在Web2.0中互动的概念是非常重要的。也正是因为有了互动这一特性,Web2.0才能和Web1.0明显的区别开来。现在Web2.0可以说已经发展到了极致,因此有人扬言Web2.0将在以后的几年之中走下坡路甚至到最后的消亡,我认为Web2.0的消亡是不可能的,就像我们现在依然可以看到Web1.0的各种应用一样!现在人们更是眼光放足于长远,很多人开始畅想于Web3.0是个什么东西。李开复也提到Google已经开始了Web3.0概念的提出,李开复自己本人也对Web3.0提出了概念,这个网上随处可以找到,这里不再多说!至于Web3.0网上的说法是五花八门,难得统一,至于各种观点大家都可以在网上找到,我在这里也不再多说。至于Web3.0到底是什么样子,现在还很难具体揣测出来,也许是等到某种技术的诞生也就自然而然的将我们带到了Web3.0的时代,到了那个时候我们也许就会恍然大悟,“原来Web3.0就是这样啊!!”
三、学习web开发的一般过程
1.学习网页设计基础知识、html以及css。
2.学习客户端开发技术,如网页前端脚本javascript,之后可以选择学习一种javascrip框架简化开发。
3.学习服务器端开发技术,如一门服务器端语言PHP,之后可以学习数据库,综合应用。
四、Web应用的开发过程
1.需求分析-目标定位、用户分析、市场前景。
2.平台规划-内容策划、界面策划、网站功能。
3.项目开发-界面设计、程序设计、系统整合。
五、结语
Web应用的需求正以一种惊人的速度在增长,web应用新的开发技术也在不断涌现,随着各种技术的发展,web应用已经不仅是一个网站,而是可以作为完整的企业级解决方案,特别是随着web2.0的各种技术(比如:Blog、RSS、Podcasting、SNS和WIKI等)的出现,更加显示了web应用的发展潜力。
参考文献:
[1]莫少东,罗伟其.web应用开发技术的发展前景[J].暨南大学学报,2001,22,1
[2]王成良.web开发技术及其应用[M].王成良.北京:清华大学出版社,2007,12
Web服务技术及其应用模式 篇12
1 Web服务技术简介
1.1 Web服务的基本概念
Web服务(Web Services)是一种基于Internet标准协议或规范的可通过网络进行发布、发现、调用的自描述的服务器端软件组件,其目的主要是程序之间的交互,即主要由程序代码而非最终用户使用。
Web服务其实是一种部署在Web上的可编程访问的对象。与DCOM、CORBA、RMI等使用特定于对象模型的专用协议的传统组件技术不同,Web服务建立在HTTP、XML等普及、开放的标准协议之上,天生具有优异的跨平台特性,因此已成为在Web上构建语言无关、松散耦合、可互操作的分布式应用程序的理想平台。
1.2 Web服务的体系结构
Web服务基于面向服务架构(Service-Oriented Architecture,SOA),其体系结构如图1所示,包括服务提供者(Service Provider)、服务请求者(Service Requester)、服务代理(Service Broker)3个主要角色以及相关的发布(Publish)、查找(Find)、绑定(Bind)3种操作。
服务提供者是Web服务的拥有者,负责对Web服务进行描述并将其发布到服务代理处。服务请求者是Web服务的使用者,可到服务代理处查找所需要的Web服务并获取相应的描述文档,然后据此对Web服务进行绑定与调用。服务代理又称为服务注册中心,是一个逻辑上集中的目录服务,可在其中进行Web服务的发布、查找等操作。服务代理相当于服务提供者与服务请求者的中介,当服务请求者在服务代理处查找到所需要的Web服务后,后续的操作就只需在服务提供者与服务请求者之间进行。
1.3 Web服务的主要标准
Web服务基于一系列的标准协议或规范,其核心标准主要有3个,即SOAP、WSDL与UDDI。Web服务的基本协议栈如图2所示,分为网络传输、数据编码、消息传递、服务描述与服务发现5层。
Web服务对于底层的传输协议没有具体的限制,可使用各种Internet传输协议,如HTTP、FTP、SMTP、MQ、BEEP等。其中,HTTP因其简单性、广泛性、稳定性以及易于穿越防火墙的优点,成为当前Web服务的最佳传输方式。
XML即可扩展标记语言(Extensible Markup Language),由W3C制定,是Web上的数据表示与交换标准,不受操作系统与编程语言的限制,且已获得广泛的支持与应用。因此,Web服务选用XML作为数据编码的格式,并使用与之相关的XML Schema作为数据类型的标准。
SOAP即简单对象访问协议(Simple Object Access Protocol),是一种基于XML的、简单的、轻量级的通信协议,用于在客户端与Web服务之间传递消息(包括请求消息与响应消息)。
WSDL即Web服务描述语言(Web Service Description Language),是一种基于XML的用于对Web服务进行全面描述的标准语言。一个Web服务的功能接口、驻留地址、绑定方式等相关信息,均包含在其WSDL文档中。客户端根据WSDL文档,即可实施对相应Web服务的绑定与调用。
UDDI即通用发现、描述与集成(Universal Discovery,Description and Integration),是Web服务发布与发现的工业标准,使用XML文档来描述服务提供者及其所提供的Web服务。借助于UDDI注册中心(公共的或私有的),服务提供者可通过注册来发布其开发的Web服务,服务请求者可通过查找来发现其需要的Web服务。
Web服务的上层标准都是基于XML的,因此具有与操作系统、编程语言无关的特性,从而为Web服务在异构平台上进行系统的集成与交互提供了充分的保证。由于XML是Web服务的基础,在Web服务中起着至关重要的作用,因此Web服务通常又称为
XML Web服务(XML Web Services)。
2 Web服务应用实例
要在.NET平台下开发Web服务,须先配置好IIS,并安装好.NET Framework。为提高开发效率,可使用Visual Studio.NET集成开发环境(IDE)。至于编程语言,则有多种选择,如VB.NET、C#、C++等,在此选用VB.NET。
2.1 Web服务的创建
在站点根目录下新建一个Web服务文件Calculator.asmx,代码如下:
在此所创建的Web服务Calculator较为简单,只有Add、Minus两个方法,分别实现加法、减法运算。其中,第1行代码说明该程序是一个Web服务,编程语言为VB.NET,类名为Calculator。在Web服务中,要提供给客户端使用的方法,均应附带WebMethod属性,且声明为Public。
Web服务创建完毕后,可在浏览器中输入其URL地址http://localhost/Calculator.asmx进行测试。若在地址中的文件名后加上“?WSDL”,可直接查看其WSDL文档。
2.2 Web服务的使用
Web服务的客户端可以是任何类型的应用程序,如Windows应用程序、Web应用程序、控制台应用程序、类库以及其他Web服务等。客户端程序对Web服务的访问,其实是通过在客户端生成的Web服务代理类进行的。在代理类中,包含有影射到Web服务所公开的功能的方法。下面,以创建ASP.NET Web应用程序为例说明Web服务的使用方法。
1)使用Wsdl.exe(Visual Studio.NET中的一个命令行工具)生成Web服务Calculator的代理类源文件Calculator.vb,并指定其命名空间为LsdServices。命令如下:
创建好程序后,即可在浏览器中输入其URL地址http://localhost/WebCalculator.aspx运行之,并实现对Web服务的调用(如图3所示)。
3 结束语
与其他分布式计算技术相比,Web服务具有极大的优越性,其应用前景是十分广阔的,也是业界公认的未来计算机技术发展中的一个关键部分。微软的.NET平台为Web服务的开发与应用提供了强大的支持。若使用Visual Studio.NET,还可进一步简化Web服务的创建与使用步骤。例如,在客户端程序的设计过程中,通过添加Web引用,即可自动完成Web服务代理类的创建过程。
参考文献
[1]石国志..NET Web服务实用案例教程[M].北京:清华大学出版社,2004.