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

发表于:2008-07-03来源:作者:点击数: 标签: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 通过 Internet 从浏览器应用程序转移到服务器门户,Ajax 应用程序将面临一些新的安全漏洞。本文介绍一些实用的建议,帮助您在避开 Web 服务漏洞的同时改善 Ajax 应用程序的性能。

Ajax 概述

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





回页首


Web 服务漏洞

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

developerWorks Ajax 资源中心
请访问 Ajax 资源中心,这是有关 Ajax 编程模型信息的一站式中心,包括很多文章和教程、讨论论坛、blog、wiki、活动和新闻。任何 Ajax 的新信息都能在这里找到。

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

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

过高的带宽

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

破损数据

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

频繁的小请求

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

内存泄漏

在一个典型的 Web 应用程序中,Web 页面经常重新加载,清除该页面的内存并开始一个干净的页面。使用 Ajax 时,等待 Web 服务门户呈现下一部分内容的时候不需要重新加载页面。使用 Ajax 可以在浏览器中保持一个单页面应用程序长达数天,这使内存或其它资源泄漏更加严重。过度的内存泄漏(以及过高的带宽和频繁的 HTTP 请求)可能会造成 Web 门户出现破损数据,增加了黑客从 Internet 中利用系统漏洞的风险。

风险评估

对于上面的四个例子,您需要判断威胁方利用系统和服务器漏洞的风险级别以及对业务造成的影响。如果风险较高,需要使用一些保护措施提高 Ajax 应用程序的性能。其中一种保护是使用 SLA 保证增强服务正常运行时间可用性。

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