问:我们为我们的服务开发了基于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是另一种值得评估的扫描器。这个产品中的许多检测功能之一是检查动态链接对服务器上的脚本进行的身份识别和授权。
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)最后,在你开发Ajax应用程序的时候,尽可能设法保持这些程序的兼容性。减少和简化任何Ajax调用将使你更容易评估一个网页或者应用程序发出的请求的类型。此外,一定要存档和解释这个应用程序是如何与服务器沟通的以及如何处理回应的。这将使你能够更容易地评估代码中是否存在安全漏洞。永远不信任来自客户机的密钥编码的规则仍然适用。任何安全控制都应该在服务器上实施,永远不要在用户的控制之下。
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)