七、安全对策
为了保护客户端浏览器,则不能信任任何第三方信息,对所有第三方信息,例如XML,RSS feeds,JSON和JavaScript等,都要进行“沙箱”验证。
图 9 第三方信息沙箱验证
例如,在发送链接信息给DOM时,经过一个简单的函数,如下代码所示,可以过滤掉JavaScript代码注入:
function checkLink(link) {
if(link.match(/javascript:|<|>/))
{
return false;
} else {
return true;
}
}
|
在进入DOM之前,对到来的数据流进行“沙箱”过滤,是保证客户端浏览器安全的最后一道防线。
八、结论
从最近的几次Web2.0应用的安全事件来看,主要原因来自客户端脚本的编写问题。未来,无论自动还是手动的扫描技术,都需要加强客户端DOM相关的漏洞扫描机制。实现Web2.0应用的完全自动扫描,面临着很大的挑战,这项工作仍然需要自动化机制和研究人员的智慧结合起来才能完成。一些旧的攻击向量例如XSRF(Cross-Site Request Forgery)在Web2.0技术应用中也需要重新审视。
Web2.0应用评估需要在客户端攻击向量方面投入更多的精力,以减少客户端的安全威胁。这篇文章关注了Web2.0应用的漏洞扫描技术,因为许多应用的漏洞,可以被应用层的攻击者利用,导致病毒、蠕虫的出现。
【参考文献】
[1] Brief on mashup (http://en.wikipedia.org/wiki/Mashup_(web_application_hybrid))
[2] JavaScript Object Notation (JSON) is a lightweight data-interchange format (http://www.json.org/)
[3] Hacking Web 2.0 Applications with Firefox (http://www.securityfocus.com/infocus/1879)
[4] XSS threat classification ( http://www.webappsec.org/projects/threat/classes/cross-site_scripting.shtml)
[5] DOM Based Cross Site Scripting or XSS of the Third Kind - By Amit Klein(http://www.webappsec.org/projects/articles/071105.shtml)
[6] Web developer plugin (http://chrispederick.com/work/webdeveloper/)
[7] Dojo toolkit (http://www.dojotoolkit.com/)
[8] JSON callback (http://developer.yahoo.com/common/json.html)
[9] The Web Hacking Incidents Database (http://www.webappsec.org/projects/whid/)
[10] Cross-Site Reference Forgery - By Jesse Burns (http://www.isecpartners.com/documents/XSRF_Paper.pdf
【参考文章】
Shreeraj Shah《Vulnerability Scanning Web 2.0 Client-Side Components Introduction》