全站资讯检索:
 
您现在的位置: 猫头鹰病毒资讯网 >> 系统安全 >> 系统安全 >> 文章正文
联合应用技术介绍之Ajax安全基础
作者:丁丁    文章来源:赛迪网    点击数:    更新时间:2007-5-17

1.介绍

Ajax由于其良好的交互性,在去年很引人注目。Google Suggest 和 Google Maps [ref 1]就是一些Ajax早期的著名应用。现在,企业正在考虑他们如何也能利用Ajax,web开发者在学习它,安全专家在想如何使它变得安全,黑客们在思考如何入侵。所有能提高服务器吞吐量,能产生更多的动态页面传输,而且能为最终用户提供更加丰富的web应用的技术都必然在这个领域出现。

Ajax的下一步计划称为”Web 2.0”。这篇文章的目的是介绍一些关于现代Ajax web技术的安全建议。尽管Ajax的应用难于测试,安全专家已经拥有大多数所需要的有关方法和工具。作者将讨论如今的趋势是否需要告别完全的网络更新,使用Ajax也意味着我们将面临一些新的安全问题。我们将从Ajax技术简要介绍开始,接着讨论使用Ajax技术应用带来的安全冲击。

2.初识Ajax

正常的web应用程序在同步模式下工作,一个web请求之后,一个响应在表示层引起一些动作。例如,点击链接或者提交按钮向web服务器产生一个带有相应参数的请求。传统的” click and wait”方式限制了应用程序的交互性。Ajax(Asychronous Javascript and XML)技术的使用缓解了这个问题。文中,我们将Ajax定义为向web服务器产生异步调用而不引起网页完全更新的方法。这种交互性的通过三种不同的组件实现:客户端脚本语言,XmlHttpRequest (XHR)对象和XML。

让我简短地分别介绍一下这些组件。在请求响应中,客户端脚本语言被用来初始化服务器调用和程序的存取,以及更新客户浏览器的DOM。客户端普遍使用JavaScript,由于它被知名浏览器普遍的采用。第二个组件是XHR对象,它是最重要的部分。JavaScript这类语言使用XHR对象在场景后面向web服务器发送请求,使用HTTP作为传输中介。接着是第三个组件,它的使用是必要的:XML是被交换信息的数据格式。

很多站点使用JSON(JavaScript Object Notation)代替XML,因为其更加容易解析不需要那么多管理的费用。使用JavaScript解析JSON,只需要简单的把它传给eval()函数。另一方面,有人可能使用XPath解析返回的XML。同样的,外面还有很多”Ajax 站点”既不使用XML,也不使用JSON,而是仅仅发送无格式的动态插入到网页的旧HTML碎片。

因此,Ajax不是一个新的技术商标,而是现存技术的联合应用,推动了web应用程序高度交互性的发展。实际上,所有这些组件已经出现好些年了,随Internet Explorer 5.0的发布而显著起来。开发者创建了Ajax许多的应用,诸如”提示”文本框(象Google Suggest)和自动更新数据列表。所有的XHR请求仍然是由典型的服务器端框架执行,例如标准的选择象J2EE,.NET和PHP。下面的Figure 1. 是Ajax应用程序的异步特性图例:

图 1.Ajax异步顺序

3. Ajax安全应用

现在我们已经回顾了Ajax的基础,让我们讨论一下它的安全含义。在web应用领域,Ajax本身并没有引入新的安全弱点。这些应用程序面临和经典web应用程序同样的问题。不幸的是,Ajax共通的最佳实现还没有发展起来,这就留下了很多的犯错误的余地。其包括安全验证,授权,存取控制和输入检查。[ref 2]。涉及Ajax使用的一些潜在领域包括:

·客户端安全控制

有人认为,客户端程序的依赖性可能引出来一些已经众所周知的问题。[ref 2]。一种可能性是开发者通过客户端控制破坏安全。如前所述,Ajax的使用需要相当多的脚本语言。如今,Web开发者同时写服务器端和客户端的代码,这也许会吸引面向客户端安全控制执行的开发者。这种方式是非常不可靠的,因为攻击者在测试应用程序弱点时,可以修改运行在他们客户端电脑上的任何代码。安全控制应该完全在服务器上执行或者经常在服务器上升级。

·不断增加的攻击面

第二个挑战是保护不断增加的攻击面。Ajax不可避免的增加了系统的整体复杂性。在采用Ajax的过程中,开发者也许要编写大量的服务器端页面,每一个页面执行一些整个程序中的小功能(象为了自动完成一个用户的城市和州域,查寻邮政区号)。这些小页面将各自成为黑客的一个附加攻击目标,而为了保证不引入新的安全弱点一个附加的点需要保护起来。这个可以比喻成著名的多重点的安全观点好像进入一个房子:保护只有一扇门的房子难度和保护有十扇门的房子相比。

·连接用户和服务器之间的间隙

Ajax是开发者通过其缩短最终用户和由面向服务构架接口的距离的一种方法。[ref 3]增加宽松联系的基于服务的构架在企业环境中有许多优点,是一种很有希望的方法。随着更多的基于服务端点的发展,随着Ajax引入向最终用户提供更多的灵活的处理的可能,远离三层标准模型的可能性增加了。

一般来说,企业内部的许多web服务(与Internet上的全部服务相对)被设计成B2B,因此,设计者和开发者常常没有考虑实际用户的交互性。这个缺乏远见的做法导致了一些坏的设计过程中安全假设。例如,最初的设计者可能假设安全认证,授权和输入检查将由其它中层系统执行。一旦有人允许”外部人士”通过Ajax的使用直接调用这些服务,就引入了一个考虑之外的代理。这类使用的一个实际例子是Microsoft的Atlas[ref 4]和web服务同时使用的一致性程度检查。开发者现在可以编写JavaScript来生成XML输入以及从客户端浏览器中正确调用web服务。在过去这个由代理和服务器完成。

·跨站脚本(XSS)的新希望

另外一个不幸的事实是攻击者通过利用跨站脚本(XSS)的弱点,能够更有创造性(换句话说,更危险)。[ref 5]黑客过去一般在”单线程”环境下使用XSS漏洞,攻击执行的时候用户的浏览器处于等待状态。这个等待状态提供了一个可能错误执行程序用户的线索。通过Ajax的引入,一个攻击者可以以更加隐秘的方式利用跨站脚本弱点。当你用一个允许Ajax的程序检查你的邮件的时候,恶意代码可能给你所有的朋友发送Email而你的浏览器不会留下任何可见的痕迹。

为了解决这方面的问题,在把程序放到产品中之前,必须执行足够多的有针对性的安全测试。即使Ajax程序是web应用程序,由于这些应用程序高度交互性的特点,一个组织好的现存的安全测试方法可能是不够的。

文章录入:菜猫    责任编辑:菜猫 
 热点文章
跑跑卡丁车和瑞星帐号保…
安全基础知识系列之防范…
开机时弹出对话框C:\PRO…
网管限制上网用户权限的…
木马病毒查找与清除实战
“杀软克星”病毒使电脑…
利用 Windows 命令行保护…
制作一个百毒不侵的系统
六个步骤即可防范ARP地址…
如何清除局域网中的ARP病…
最新文章
 
相关文章
安全基础 Windows系统进程完全解析
Web2.0十大Ajax安全漏洞以及成因
十大Ajax安全漏洞以及成因
AJAX用户最关心安全性 专家给出解答
相关评论
网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
::发表评论::
姓 名:* (必填项)
E-mail: QQ:
评 分: 1分 2分 3分 4分 5分
评论内容:
  • 严禁发表危害国家安全、政治、黄色淫秽等内容的评论。
  • 评论人需对自己在使用评论过程中的行为承担法律责任。
  • 本站管理员有权保留或删除评论内容。
  • 游客发表评论须经管理员审核后才能发表。
  • 评论内容只代表个人观点,与本网站立场无关。
 
设为首页 | 收藏本站 | 关于我们 | 联系我们 | 刊登广告 | 版权声明 | 友情链接 | 网站地图
猫头鹰反病毒资讯网所有信息来自互联网及网友提供,如侵犯了你的权益,请来信告知,我们将立即删除!
Copyright © 2007-2008 MoToYi.com All rights reserved
本站为你提供病毒木马的防治方案,专杀工具和防护软件的下载,系统及网络的安全技巧,手机病毒发展趋势.