問:我們為我們的服務開發了基於Java和Ajax的Web產品。有沒有任何自由的工具軟件能夠掃描AJax安全漏洞的代碼?
答:保證Ajax應用程序的安全是任何開發或者管理Web服務的人員的一個新的挑戰。大多數AJax應用程序的核心是JavaScript的XMLHttpRequest對象,能夠讓Web頁獨立地連接到用戶的Web服務器和提取跨域的內容。當在一個面向服務的架構中與其它松散地結合在一起的軟件服務結合在一起的時候,這個功能就會出現嚴重的安全問題。雖然Ajax不會創造新的安全漏洞,但是,它可以暴露許多現有的安全漏洞,特別是在AJax應用程序特別復雜的時候。這使測試用戶和服務互動可能出現的許多序列改變非常困難。
你要掃描你的代碼是非常正確的。但是,到目前位置還沒有一種全面自動的Ajax應用程序安全評估工具。開放Web應用安全計劃(OWASP)最新提供了一個免費下載的Sprajax軟件。這是一種專門為掃描Ajax Web應用程序中的潛在的安全漏洞而開發的開源軟件安全掃描器。我毫不懷疑這個軟件將成為一個偉大的工具。但是,我現在還不能把它稱作一個偉大的工具。你可以在這個網站上下載SprAJax。在OWASP網站,你還會發現有關開發安全的AJax應用程序的忠告,你還可以通過注冊從Acunetix公司那裡接收一個補充的安全掃描。
另一方面,如果你的預算允許購買一個Ajax安全漏洞評估工具,你可以考慮購買Cenzic公司更新的Hailstorm產品。這種新更新的工具現在可以掃描擁有AJax功能的應用程序。雖然不能涵蓋每一個基於XML和SOA的安全漏洞,但是,Hailstorm能夠使用內部浏覽器根據應用程序的實際反應檢測錯誤。這比依賴基於特征的掃描要好得多。這種產品還可以對劫持會話等安全漏洞實施基於會話的評估,這種策略是基於特征的掃描所辦不到的。SPI Dynamics公司的WebInspect是另一種值得評估的掃描器。這個產品中的許多檢測功能之一是檢查動態鏈接對服務器上的腳本進行的身份識別和授權。
最後,在你開發Ajax應用程序的時候,盡可能設法保持這些程序的兼容性。減少和簡化任何AJax調用將使你更容易評估一個網頁或者應用程序發出的請求的類型。此外,一定要存檔和解釋這個應用程序是如何與服務器溝通的以及如何處理回應的。這將使你能夠更容易地評估代碼中是否存在安全漏洞。永遠不信任來自客戶機的密鑰編碼的規則仍然適用。任何安全控制都應該在服務器上實施,永遠不要在用戶的控制之下。