Ajax安全性分析(共4篇)
Ajax安全性分析 篇1
在目前的Web2.0热潮中,Ajax已成为人们谈论最多的技术术语。Ajax是A synchronous JavaScript and X M L的缩写,意思是异步的JavaScript与X M L。Ajax使用了若干项技术来构建丰富的基于Web的应用,使得在线的Web应用与桌面程序有同样的观感这些技术包括CSS、JavaScript、XHTML、XML、XMLHttpRequest、D O M以及X SLT等[1]。更重要的是它打破了使用页面重载的惯例技术组合,可以说AJAX已成为Web开发的重要武器,由于Ajax的动态性和多畴性,Ajax技术引入了一些新型威胁。
1 Ajax的工作原理
Ajax构建于动态HTML(DHTML)技术之上,在Ajax中,客户端JavaScript通过动态修改DOM树和样式表来更新Web页面。此外,异步通信允许实现动态的更新数据,而无需要重新加载整个Web页面。异步通信主要通过以下两个技术实现:
1)XMLHttpRequest:XMLHttpRequest在IE中是XMLHttp组件的一个对象[2],它允许客户端的JavaScript与远程服务器建立HTTP连接和交换数据,比如说纯文本、XML和JSON(JavaScript Serialized Object Notation)。
2)JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。易于人阅读和编写,同时也易于机器解析和生成。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C,C++,C#,Java,JavaScript,Perl,Python等)。这些特性使JSON成为理想的数据交换语言[3]。
Ajax应用程序中还有一些其他常用的格式可以替代JSON,比如说XML和无格式的纯文本。接下去着重分析JSON,其原因在于JSON具有一些隐藏的安全问题。
2 Ajax的安全隐患分析
2.1 JSON和动态脚本标记的同源策略隐患
由于JSON只是一种含有简单括号结构的纯文本,因此许多通道都可以交换JSON消息。因为同源策略的限制,我们不能在与外部服务器进行通信的时候使用XMLHttpRequest。JSONP是一种可以绕过同源策略的方法,即通过使用JSON与