扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:赛迪网 来源:赛迪网 2007年10月5日
关键字:
在本页阅读全文(共2页)
我们观察图4中的“Ajax Calls”,可以看到浏览器通过XHR发送的一些请求,从服务器下载dojo Ajax框架,与此同时,向服务器发送一个调用,获取新闻文章的内容。
如果我们仔细查看代码,可以发现如下JavaScript代码:
|
上述代码发送一个异步的调用访问Web服务器,企图获取的资源是:
|
这个aspx页面经过编译后传给客户端浏览器。其代码放在ID为result的标签所在处。这是一个典型的使用XHR对象进行的Ajax调用的例子。
通过借助Firebug进行分析,我们可以记录一个页面所有XHR对象调用,从而发现有安全漏洞的内部URL、查询字符串和POST请求。仍然以上面的代码为例,参数date的值如果处理不当,就可能存在SQL注入漏洞。
3.2网络爬虫问题及浏览器仿真
在评估一个Web应用安全性时,一个重要的工具是网络爬虫。网络爬虫功能是爬下该Web应用中的每个网页,搜集其中的链接。但是在Web2.0的应用中,这些链接往往都指向JavaScript函数,再由JavaScript函数通过XHR对象调用新的页面内容,这时,网络爬虫会丢失这些信息。例如,下面是一个简单链接的集合。
|
“go1”链接被点击时,getMe()函数被执行,getMe()函数的代码如下所示。这个函数可能在一个单独的JavaScript文件中实现。
|
上面的代码执行后,发送一个HTTP Get请求,访问服务器上的资源hi.html。
可否使用自动化机制仿真这个点击链接的操作呢?Firefox插件Chickenfoot为我们实现了这个功能,它提供了基于JavaScript的API,扩展了浏览器的可编程接口。
使用Chickenfoot这款插件,可以自己编写简单的JavaScript代码来使得浏览器的行为自动化。使用这种方法,像爬虫抓取网页这样简单的任务就可以自动完成了。例如下面的示例代码,可以模拟点击事件把网页上所有连接都点击一遍。这款插件与传统的网络爬虫相比,优势显而易见:所有这些onClick事件都会产生一个XHR调用,而这些响应会被传统的网络爬虫忽略,传统的爬虫只能试图去分析JavaScript代码,搜集可能的链接,但这并不能取代实际onClick事件的响应。
|
读者可以把这段脚本加载到Chickenfoot控制台,然后运行。结果如图5所示。
这种方法,可以创建JavaScript脚本,在Firefox浏览器内部评估基于Ajax的Web应用的安全性。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。