Ajax安全性分析 篇1
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与