部署高效帶寬 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 通過將用戶的瀏覽器體驗(例如,企業對企業交易)轉換為一個基于 XML 的 Web 服務門戶(例如企業對消費者交易),實現了響應式和交互式 Web 服務。Ajax 使用的方法是在 Web 頁面和服務器之間,通過 HTTP 協議構建一個額外的處理層。該層攔截來自用戶的請求,然后在后臺與服務器通信并異步獲得所需的 HTTP 協議內容。服務器請求和響應不需要匹配用戶操作,例如一個更新數據庫記錄的請求和一個更新成功的響應。
![]() ![]() |
![]()
|
讓我們解決一些有關額外處理層的問題。由于它依賴 XML 作為請求和響應負載的內容類型,Ajax 增加需要傳輸的 XML 流量。當出現大量的請求和響應時,Ajax 應用程序會阻塞網絡通信。而更嚴重的問題是,大量的通信會使 Ajax 應用程序受到 Web 服務漏洞的威脅。如果這些漏洞被人利用,應用程序或系統的性能將受到損害。
![]() |
|
讓我們看看四個漏洞實例:
- 過高的帶寬
- 破損數據
- 頻繁的小型 HTTP 請求
- 內存泄漏
文本格式的 XML 消息可能是二進制數據帶寬量的兩倍之多。傳輸 XML 消息所需的帶寬越多,系統或應用程序用來執行其他任務的可用資源就越少。例如執行復雜算法來獲取期望結果。過高的帶寬可能導致由系統超載引起的性能減退。
過高的帶寬將導致 Ajax 應用程序輸出破損的數據,因為沒有足夠的資源生成干凈的數據。這意味著 Web 服務門戶(Ajax 應用程序屬于其中的一部分)將把破損數據暴露給門戶的其他部分,從而導致畸形消息和過度解析。如果威脅者利用了這個漏洞,則會引起瀏覽器崩潰。
Ajax 的一個缺點就是允許您生成大量較小的請求,而不是一個大的 post-back。頻繁的、較小的 HTTP 請求會加重后端服務器、負載均衡程序和防火墻的負擔,結果是造成過高的帶寬,最終導致性能降低。它們還會超出瀏覽器或較慢的網絡連接的接受能力,從而導致網絡性能瓶頸。
在一個典型的 Web 應用程序中,Web 頁面經常重新加載,清除該頁面的內存并開始一個干凈的頁面。使用 Ajax 時,等待 Web 服務門戶呈現下一部分內容的時候不需要重新加載頁面。使用 Ajax 可以在瀏覽器中保持一個單頁面應用程序長達數天,這使內存或其它資源泄漏更加嚴重。過度的內存泄漏(以及過高的帶寬和頻繁的 HTTP 請求)可能會造成 Web 門戶出現破損數據,增加了黑客從 Internet 中利用系統漏洞的風險。
對于上面的四個例子,您需要判斷威脅方利用系統和服務器漏洞的風險級別以及對業務造成的影響。如果風險較高,需要使用一些保護措施提高 Ajax 應用程序的性能。其中一種保護是使用 SLA 保證增強服務正常運行時間可用性。
文章來源于領測軟件測試網 http://www.kjueaiud.com/