簡介
在最近的 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.kjueaiud.com/