基于AJAX的Web 2.0应用程序安全性分析

来源 :计算机光盘软件与应用 | 被引量 : 0次 | 上传用户:jiahenglipin
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:AJAX是一种用于创建更好更快以及交互性更强的Web应用程序技术,一些大型视频类、社交类网站均应用AJAX技术去开发网站。自从社交网站受到蠕虫病毒攻击开始,人们越发关注基于AJAX开发的应用程序存在哪些安全性问题。本文主要介绍了AJAX技术的原理、分析了两类常见的安全性问题,对于这两类问题分别阐述了相应的防御方法。
  关键词:AJAX;安全性问题;防御
  中图分类号:TP393.08
  Web 2.0这个术语是不断变化的代名词。越来越多的人使用网络从而促使网络技术飞速发展。如果说网络可以被视为一个平台的话,那么不断被开发的网页技术则可被看做是用来搜索网页的工具。这种变化对人文科学和社会行为都有着显著地影响。随着时间的流逝,为了满足社会和商业的需要,基于Web 2.0的应用程序取代了Web 1.0程序被广泛的应用起来。Web 2.0应用程序在网站的架构、信息来源和展现信息的方式都与以往不同。随着Web 2.0这个概念不断推动网络发展的同时,AJAX这个新技术孕育而生。AJAX框架技术最早被谷歌和微软应用,由于基于AJAX技术的应用程序不仅提升了用户体验,而且在很大程度上减少了网络流量,并减轻了服务器负载,很多商业网站、邮件服务类、博客首页都开始用AJAX技术去搭建网站。然而,随着基于AJAX技术应用程序的兴起,其安全性问题也得到了广泛的关注。
  1 AJAX的含义
  AJAX即Asynchronous JavaScript+XML,并不是一种新的技术而是基于现有的技术和环境进行重新组合。当Jesse James Garrett最早定义AJAX时就已经指出,AJAX包含了XHTML,XML,DOM,JAVASCRIPT and XMLHttpRequest,它利用现有的技术使得网页内容可以动态更新。在体验基于AJAX应用程序时,数据从网页服务器传输到浏览器然后在浏览器进行处理,然后通过HTML,XSLT或者JavaScript展现出来。与传统的HTTP网页相比,这种基于AJAX技术的数据传输和处理方式极大的提高了网页的动态交互、丰富了用户的体验,用户不再需要为了更新页面数据而去更新整个网页。
  2 安全性问题
  当AJAX技术框架在操作和性能上给应用程序带来巨大优势的同时,也带来了一些安全方面的问题,而这些安全问题常常容易被我们所忽视。同时,一些安全性问题对于传统的应用程序而言并不严重,但是对于基于AJAX技术的应用程序而言却会因为AJAX自身的特点带来严重的后果。
  对于网页应用程序而言,安全问题主要来自于恶意代码的威胁。因此,以下主要介绍脚本攻击和跨域发送请求这两方面的安全问题。除此之外,潜在的SQL注入问题在AJAX应用程序中也是一种常见的安全性问题,但是这类问题已经被有效的解决了,本文将不做阐述。
  2.1 脚本安全问题。XSS又叫Cross Site Script,跨站脚本攻击。在AJAX应用程序中,是最常见的一种脚本攻击。跨站脚本攻击并不是一种新的攻击方式,但是在过去的几年当中经常被人们所忽视。在一个传统的网页应用程序中,跨站脚本攻击主要通过偷取cookie和会话劫持两种方式实现,当用户刷新网页时跨站脚本攻击就会被触发。对于传统应用程序而言这并不是什么很严重的问题。但是在AJAX应用程序中,由于网页是通过JavaScript控制的,这种基于AJAX的应用程序无需通过用户可以直接向网页服务器发送HTTP请求。因此跨站脚本攻击对于AJAX程序而言威胁要更大。
  XSS通常是指黑客将恶意的HTML代码插入到网页中,当用户浏览网页时被嵌入的恶意代码会被激活。跨站脚本攻击流程如下图所示:
  由于网页服务器对于用户输入的字段没有进行严格的检查和过滤,因此AJAX应用程序很容易遭受跨站脚本的攻击。对于基于Ajax应用程序的客户端脚本,JavaScript脚本本身可以创建HTTP请求并且请求的格式和用户在浏览器操作的是相同的。因此,网络服务器无法区分请求是来自于用户的操作还是来自于恶意的JavaScript创建的XMLHTTPRequest对象。
  2.2 跨域发送请求安全问题。通常有四种方式来实现跨域操作:(1)通过Flash来实现跨域;(2)使用Javascript动态生成的