动态网站制作指南
[  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
电脑书籍下载:程序设计书籍 | 数据库教程书籍 | 平面与多媒体书籍 | 网络通讯书籍 | 系统管理书籍 | 网络安全书籍 | 认证考试书籍
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Ajax教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Ajax教程 ]的信息

本月文章推荐
.利用Ajax传递Xml文档.
.利用ProtoType框架完成的一个下拉.
.AJAX、AJAX实例及AJAX源代码(as.
.Ajax实现在textbox中输入内容,动.
.基于css样式绑定的样式驱动式AJA.
.基于PHP和AJAX创建RSS聚合器.
.实现一个基于Ajax的调查程序.
.用AJAX编写用户注册时的应用实例.
.XMLHTTP对象封装技术.
.php+ajax文件上传进度条.
.AJAX技术 vs 传统的ASP无刷新技术.
.结合AJAX进行PHP开发之入门.
.ajax技术制作得在线歌词搜索功能 .
.使用AjaxPro开发四级无刷新联动下.
.AJAX之xmlHttp.
.关天asp.net ajax beta中在updat.
.AJAX如何与后台交互 .
.在ASP.NET AJAX中别使用mode="Le.
.从用户体验与编程模型方面看AJAX.
.Ajax+GridView+Xml的简易留言薄.

XMLHttpRequest和AJAX虎视Web应用开发

文章类别:Ajax教程 | 发表日期:2005-12-12 |


  一、 引言

  在XMLHttpRequest对象和AJAX给用户和开发者带给巨大好处的同时,也许还有一些问题你没有考虑到-但是的确到了值得引起每个人注意的时候了。

  甚至非常讨厌的人也都喜欢XMLHttpRequest,因为它提供给程序员真正梦想的功能。也正是因为有了这样的新技术,Web应用软件开始变得具有象桌面应用软件相似的行为。如今,问题总是象"假定为……"那样地简单,这把幼稚的终端用户从需要了解服务端、客户、回寄和提交按钮-"提交?提交给什么东西?"-等一系列问题的苦海中解脱出来。

  最近,无数可怕的案例爆炸式出现在Web上,它们充分说明为什么远程脚本(或称"AJAX",如果你喜欢的话)是自从单像素点gif技术以来最伟大的事情。事实上,成串的酷极的、有用的应用软件正日益增长,象站点Flickr,Google Maps,The WebORB Presentation Server等所宣传的那样。

  这些站点和另外许多地方大肆宣传AJAX的能力。公正地说,这种技术在提高在线操作的质量方面的确有相当的潜力来。然而,尽管它有许多的优点,但是这个神圣的Web通讯大杯中嗅起来仍然有一股奇怪的味道;就象摆动在我们面前的啤酒和巧克力,仍有一个邪恶的方面存在于其中-表面上看起来是多么地纯洁和天真。

  这种潜在的邪恶存在于用户熟悉的操作界面背后的重要的功能性差距之中。你们当中许多人可能已经使用互联网近10年了,并且你知道它怎样工作:你到处点按鼠标,填充表单,修改你的输入;当做完所有这些,你可以点击提交按钮。你们都了解这些精华经验-它们从因特网的一代传递到新的一代,如:"不要点按提交按钮两次-否则,表单可能要提交两次"或"等待稍微长一些时间,它正在处理"或"在你提交了表单后,不要点按'向后'按钮",等等。

  但是既然现在AJAX已登堂入室,那么你可以把基本知识抛出窗外。简直是"什么东西都可以"-突然间出现一种新的可被跟踪的数据-可以在任何时候发送出去,而不需要用户的任何了解,甚至用户还不了解这竟然是可能发生的。每一次击键,每一个鼠标移动,每一下点按鼠标,每一次停顿,都能被捕获并发送到Web服务器,而你对此无能为力。

  二、 XMLHttpRequest:利与弊

  就象许多技术存在利弊一样,产生这种技术的目的是为了利用其优点。直到如今,XMLHttpRequest带给人们如此多的优点,诸如不需回滚的输入校验,文本区域的拼写检查以及Gmail等等,简直几乎为人们捧之为神圣。基于AJAX技术创建的接口使用起来非常有趣,甚至编码更有趣味。简直很难令人相信,这样一种神奇的技术竟然能够做错事情。

  但是,即使还没有发现存在巨大的安全漏洞,该XMLHttpRequest也有可能因为其外在的优雅而失败。它很可能会失败在"用户轮廓图"-用于更好的描述之目的-的应用之中。当前,用户轮廓图帮助Web站主侦探趋势,跟踪网页浏览习惯并帮助消除使用性问题。但是直到现在,开发人员还只能分析寄回的数据-用户决定让服务器取得的数据并为提交后得到处理而高兴。

  但是通过一种微秒的手段,这种能量平衡会发生易位。通过使用AJAX技术,一个用户的行为可以被持续地并小心地监控。因为它能被做,所以它将被做;这就带给人们一个相当头疼的问题,而不仅仅是浪费带宽、成兆的垃圾信息以及更慢的网页装载次数的问题。

  设想一下,这里仅是举例说明问题,你把一部新购买的iPod掉到地上去了,结果它停止了工作。抱着希望得到免费的替换的想法,你发了一封电子邮件给Apple公司的售后服务部,信中说:"我刚刚买了一个新牌子的iPod。我不小心把它掉到了楼梯上,它突然停止工作了。"之后,你决定删去第二句以支持你的理由。太晚了!如果该网站使用了AJAX技术,你的反映可能早就被杀死在了你的抱怨桌前!

  或者-一个更恶意破坏性的例子-请考虑这种情况:大多数人都有一个或两个用户名/口令组合以用于他们的"并不重要"的站点,如新闻站点、博客、论坛等。他们可能还有几个保留的这种组合以用于更敏感的网站-银行业务,Web邮件和工作帐号等。在一个给定页面中输入不正确的登录细节是非常普通和极易犯的错误。虽然他们以前形成的习惯的影响应对此负主要责任,但是在人们点击提交按钮前常常是已经意识到他们所做的事情的。

  不幸的是,一个AJAX击键记录程序实现起来相当麻烦。使用如此的一个击键记录程序,就可以用代码来收集不正确的登录尝试,然后针对一系列"重要的"站点对之进行试验-当然,也可以使用XMLHttpRequest对象。

  三、 "恶意"暗示

  公平地说,上面引用的大多数的"恶意"应用软件都能被合理地加以处理,即使在XMLHttpRequest技术出现以前。的确,request对象是一种相对于以前的IFrame技术更为优雅的成功提交表单数据的方法。但是,XMLHttpRequest以一种更为自然的方式工作,这种方式简直可以能使客户端与服务器端的交互差别逐渐消失。

  具有讽刺意味的是,直到最近,随着Firefox Web浏览器的不断流行,才使得较多用户真正了解到可以由Web客户端储存和控制的信息的深度和广度。随着广泛采用象Greasemonkey,Web开发者扩展以及cookie编辑器这样的工具,人们比以往任何时候更为确信,如果问题发生在客户端,那么责任一般应归咎于该用户。

  但是现在,即使象我们这样狂妄的人也不再只是右击鼠标,看一下源代码,然后就能确信正在发生的事情了。请考虑下面的OnReadyStateChange JavaScript语句,运行它是为了响应一个XMLHttpRequest:

xmlReq.onreadystatechange =
{
if( xmlReq.readyState == 4 )
{
eval( xmlReq.responseText );
}
}

  上面的代码执行包含在来自于XMLHttpRequest的响应中的JavaScript代码。换句话说,有可能出现这种情况:即使一个页面加载完毕,也有可能在后台再进行添加或修改JavaScript函数和代码!因此就算你观察该页面代码的源代码-它可能发送了键击或鼠标移动事件到Web服务器,你也无法确信你所见的代码是当前执行的唯一代码。把这些特征与一些令人胆战心惊的困惑结合起来,那么你可以看到,恶意目的与XMLHttpRequest对象相结合,怎么不能实现Web客户的信息窃取!

  四、 还不确信?

  你还不感到害怕并因此而愤怒吗?还不准备愤起并删去你的浏览器中的XMLHttpRequest代码吗?那么,好,也许本文强势的措词论证会吓倒了你;那么在游戏"Fonzie寻宝记"(The Search For 's Treasure。译者注:在GOOGLE中输入这几个关键词,你肯定能找到这个在线文本游戏,本人没有深入试验。难道这个小东西那么可爱的面孔下竟然埋伏着上面所述的那么恐怖的……)中-你能够救出Fonzie吗?

  通过使用很有艺术的命令行接口,穿过充满文本的门厅寻找丢失的Arthur 'Fonzie' Fonzarelli宝藏。祝你幸运,但是请记住…虽然它看上去就象无危害的客户交互-你每作四次移动,该游戏通过XMLHttpRequest对象发送一个请求到服务器上并保存你的移动。永远记住:不要做一个印刷工(Don't make a typo);不要尝试一些愚蠢的东西如"eat jukebox";不要在游戏中输入一个用户名和口令字;否则……


上一篇:ASP.NET+AJAX解决网页打开等待问题 人气:10452
下一篇:IBM Google等巨头联手支持Open Ajax计划 人气:6397
点击此处浏览全部XMLHttpRequest的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-5-16 乘风多用户PHP统计系统 v3.4
2008-5-16 轩溪下载系统 v3.78 build 0515
2008-5-16 普沙B2B 浙江省商贸网 v2.0
2008-5-16 asp抓蜘蛛的小程序 v1.0
2008-5-16 齐齐乐网私服发布站 仿haosf新版
2008-5-16 IssTech信息反馈系统 v1.0
2008-5-16 自由领域大头贴(js接口版) 修正版
2008-5-16 医院网站系统
2008-5-16 智拓-分类信息管理系统 v5.0
2008-5-7 Windows XP SP3 官方英文版
2008-5-7 Windows XP SP3 官方香港中文版
2008-5-7 Windows XP SP3 官方繁体中文版
2008-5-7 Windows XP SP3 官方简体中文版
2008-4-30 Multiple Unzip Wizard 1.02
2008-4-30 Multiple Unrar Wizard 1.0.0
2008-4-30 WinZip Install/Try/Uninstall a
2008-4-30 ZIP压缩文件修复器WzipFix 2.0
2008-4-30 Pentazip 6.01 Build 189 For Wi
  发表评论
姓 名: 验证码: [ 全部贴吧 ] [ 浏览评论 ]
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号