自从进入了千禧年,互联网应用如雨后春笋一般发展了起来,虽然已经经历过了一波低谷,但最近几年又迎来了又一轮的上升期。在这些蓬勃发展的过程中,涌现才出多大大小小的网站,不但出现了许许多多针对个人用户的网站,企业也竞相将自己的业务平台Web化。
的确,Web应用相对于以往的本地应用有着自己的优势,部署容易、无需客户端、跨平台等等。但与此同时,Web应用也带来了一系列本地应用所不曾遇到的问题。本地应用仅仅只是针对一小部分用户,应用的用户规模是可以控制的。而Web应用一旦发布,就将自己暴露给了互联网上的所有用户。除去用户规模、性能、持续性服务等挑战之外,还要面对来自方方面面的安全上的挑战。
小心开发当中的陷阱
Web开发虽然简单、快速,但是在开发的过程中也隐藏着大大小小的各种陷阱。稍不留神,就有可能步入陷阱而不自知。而有些漏洞往往是致命的,轻则无法提供服务,重则数据丢失、站点瘫痪。例如我们几乎已经可以耳熟能详的DNS(拒绝服务式攻击)就是靠大量的访问连接压垮对外提供服务的Web服务器和应用;几乎非常常见的SQL注入式攻击,就是通过开发人员在编写SQL语句中的方法上出现纰漏而导致业务系统受损;Ajax应用中的跨站攻击,通过伪造数据而获得用户的全部权限等等。Web开发看起来似乎很简单,容易上手,也可以在短期内就见到成果,但事实上Web开发在技术和安全方面的要求更高。对于企业来说,如何解决这些问题,如何能够在最大程度上避免由于各种原因而导致的Web应用的漏洞和失败?这还要依靠保证质量的最有效方法,漏洞检测和测试。
提到漏洞检测,这其实是一个非常广泛的话题,不单单是Web应用的问题,还包括操作系统的漏洞和各类应用的漏洞等等。因为对于Web应用来说,由于暴露在互联网上的是包括提供服务的主机、应用、服务等一整套系统,任何一个点出了问题,都有可能导致整个服务的宕机。因此安全检测是一个全方位的测试,无论是在开源社区和商业领域,都有许多这方面的工具。开源的Metasploit Framework,和获得2007的Jolt安全检测大奖的商业产品Rational AppScan,都是这个领域的佼佼者。
全面测试防止安全风险
漏洞检测是在现有应用的基础上对可能存在的问题进行检查,而根本预防问题的方式还是要在发布之前做好测试。作为软件开发人员,必须非常高效地满足不断增长的软件质量需求。许多 IT 专业人员还在继续花费很多时间重复手动地进行解决方案的软件测试和进行缺陷跟踪。为了提高效率,可以通过各种自动化测试工具,将IT 专业人员从这些重复的任务中解放出来,自动化测试可以支持更高层次上的软件测试活动,并且可以通过将软件测试工件的有效管理,使开发人员获得更高的生产力。
而对于Web应用的测试来说,包含几个方面的内容。除了传统意义上的单元测试、功能测试,还包括性能测试。单元测试,最常见的就是xUnit系列。而功能测试方面,由于Web应用除了代码本身的影响,还会收到一些第三方的应用或运行环境的影响,因此自动化测试只是作为一个辅助测试手段。虽然无法做到像单元测试那样的完全自动化和可靠,但在一定程度上也可以有效的提高测试效率。这方面的产品有手工测试和自动化测试两类,例如Rational Functional Tester、Rational Robot等等。其中Rational Robot对于GUI采取的通过脚本回放的方式进行自动化测试,也是绝大多数针对GUI应用的基本方法。对于网络应用来说,Rational Robot也可以通过模拟虚拟用户对Web应用进行测试。而性能测试除了能够反映Web应用所能提供的服务的质量、用户规模方面的指标之外,还是是否能够应对DNS攻击的一个很好的演习。在这个方面,除了开发人员针对具体的应用和服务开发一些测试程序和模拟代码之外,还可以通过通用性的性能测试工具来进行检测。例如Rational Performance、LoadRunner都是非常优秀的测试工具。
事实上,在进入互联网热潮的过程中,有很多Web开发的技术人员跨入了这个行业。一方面由于Web开发的技术进展日新月异,开发人员的技术和经验积累不足;另外一方面,也由于也是由于开发人员对于安全性方面的考虑不足,导致很多Web站点漏洞百出。通过有效的测试和漏洞检测,能够在最大程度上减低Web应用的风险,提高其可靠性。
| 来源:比特网 编辑:花脸道 |
|
|
|
访问网盾科技(Netshield)旗下站点:
|