提高 Ajax 应用程序性能,避开 Web 服务漏洞

发表于:2009-04-28来源:作者:点击数: 标签:webWEBWeb漏洞性能
部署高效带宽 Ajax 应用程序并不能保证 Service Level Agreement 中的服务水平很高。无论怎样修改 Ajax 代码来提高带宽效率,始终存在一些风险和漏洞,需要您进行监视并解决。developerWorks 定期撰稿人 Judith Myerson 对 Ajax 进行了简单的概述,解释了 We
  部署高效带宽 Ajax 应用程序并不能保证 Service Level Agreement 中的服务水平很高。无论怎样修改 Ajax 代码来提高带宽效率,始终存在一些风险和漏洞,需要您进行监视并解决。developerWorks 定期撰稿人 Judith Myerson 对 Ajax 进行了简单的概述,解释了 Web 服务漏洞是什么以及为何 Service Level Agreements(SLA)如此重要,并提出了一些改进 Ajax 应用程序的解决方案
简介

        在最近的 developerWorks 系列 在 Web 服务上下文中使用 SLA 中,我谈论了使用 SLA 保证的一些功能:保护多个 Web 服务、使用防火墙保护 Web 服务以及降低漏洞风险。尽管存在各种各样的性能和标准规范,我还是侧重讨论了生产商为客户提供高可用性服务的重要性。

        本文将首先对 Asynchronous JavaScript + XML(Ajax)进行概述,提出一些漏洞问题、讨论 SLA 影响,然后解释为什么具有高效带宽的 Ajax 应用程序不能保证降低或消除漏洞风险。本文还介绍了一些提高 Ajax 应用程序性能并避开 Web 服务漏洞的方法。

Ajax 概述

        Ajax 通过将用户的浏览器体验(例如,企业对企业交易)转换为一个基于 XML 的 Web 服务门户(例如企业对消费者交易),实现了响应式和交互式 Web 服务。Ajax 使用的方法是在 Web 页面和服务器之间,通过 HTTP 协议构建一个额外的处理层。该层拦截来自用户的请求,然后在后台与服务器通信并异步获得所需的 HTTP 协议内容。服务器请求和响应不需要匹配用户操作,例如一个更新数据库记录的请求和一个更新成功的响应。

Web 服务漏洞

        让我们解决一些有关额外处理层的问题。由于它依赖 XML 作为请求和响应负载的内容类型,Ajax 增加需要传输的 XML 流量。当出现大量的请求和响应时,Ajax 应用程序会阻塞网络通信。而更严重的问题是,大量的通信会使 Ajax 应用程序受到 Web 服务漏洞的威胁。如果这些漏洞被人利用,应用程序或系统的性能将受到损害。

        让我们看看四个漏洞实例:

过高的带宽
破损数据
频繁的小型 HTTP 请求
内存泄漏
过高的带宽

        文本格式的 XML 消息可能是二进制数据带宽量的两倍之多。传输 XML 消息所需的带宽越多,系统或应用程序用来执行其他任务的可用资源就越少。例如执行复杂算法来获取期望结果。过高的带宽可能导致由系统超载引起的性能减退。

破损数据

        过高的带宽将导致 Ajax 应用程序输出破损的数据,因为没有足够的资源生成干净的数据。这意味着 Web 服务门户(Ajax 应用程序属于其中的一部分)将把破损数据暴露给门户的其他部分,从而导致畸形消息和过度解析。如果威胁者利用了这个漏洞,则会引起浏览器崩溃。

频繁的小请求

        Ajax 的一个缺点就是允许您生成大量较小的请求,而不是一个大的 post-back。频繁的、较小的 HTTP 请求会加重后端服务器、负载均衡程序和防火墙的负担,结果是造成过高的带宽,最终导致性能降低。它们还会超出浏览器或较慢的网络连接的接受能力,从而导致网络性能瓶颈。

内存泄漏

    

原文转自:http://www.ltesting.net