当前位置: 首页 > 图文教程 > 网络编程 > ASP > ASP利用XMLHTTP实现表单提交以及cookies的发送的代码

ASP
一段ASP 伪静态代码
asp的程序能实现伪静态化的方法
实例讲解实现抓取网上房产信息的ASP程序
[图]Flash+ASP实现电子互动地图在线标注功能
asp下多个域名后缀同时查询的域名查询系统
用ASP实现对ORACLE数据库的操作
用ASP做的DNS LOOKUP程序
用存储过程、GetRows()、抽取10万条数据的速度测试
asp中利用CSW中文分词组件来实现自己网站的内容关键词自动提取
ASP+JS三级联动下拉菜单[调用数据库数据]
用ASP实现距指定日期的倒记时程序源码
详细讲解ASP脚本循环语句
ASP中如何判断一个字符是不是汉字
将ACCESS转化成SQL2000要注意的问题
Microsoft JET Database Engine 错误 ''80004005'' 未指定的错误的完美解决方法
在ASP中使用均速分页法提高分页速度的方法
ASP+COM不得不注意的问题
ASP生成动态flash的工具与介绍
用asp实现的数据库中存取文件的代码
asp的通用数据分页类

ASP利用XMLHTTP实现表单提交以及cookies的发送的代码


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 91 ::
收藏到网摘: n/a

利用XMLHTTP来制作小偷的具体细节落伍很多人都发过和讨论过了,但是在制作ASP小偷的过程中,很多人就发现ASP小偷不如PHP小偷的那么强大了。 确实,如果在原网站如果存在表单提交或cookies的验证,对于ASP来说,不使用基于SOCKET的组件就难以完成,其实,XMLHTTP的另外两个方法被我们忽略了,而这正是问题的关键。
下面首先来说说这个方法
1。.send()
由于流行的小偷是使用的GET而不是POST来传送数据,所以很多人忽略了这个方法,而使用SEND发送数据也很简单,就是SEND("内容"),可是,
发送表单就不是这么简单,因为你发送的表单如果是中文的话,就要牵扯到编码的问题了。
首先,你在OPEN 时要确定是用POST 即 .open("POST",地址,是否异步) 。
然后,在SEND里面加上你表单的内容,比如说,你要提交的表单有3个表单域,分别是A,B,C,对应的值分别是1,2,3,那么,你在SEND里这样写就可以提交表单了,.send("A=1&B=2&C=3"),怎么样,很简单吧,是不是没想到呢?但是别高兴的太早了,我前面说到了,如果表单的值是中文的话,数据传输的就会出错了。这里我们借助一个函数escape(),熟悉JAVASCRIPT的朋友都应该知道这个函数的作用了,现在VBSCRIPT同样支持这个函数。.send("A=escape('值1')&B=escape('值2')&C=escape('值3')") 。
2。.setRequestHeader()
接着上面的所说,你的数据send出去了,对方却不会接收到,为什么了,其实,那是因为你的HTTP头少了一个东西,然后用这个函数把加上去就可以了,具体就是.setRequestHeader("CONTENT-TYPE","application/x-www-form-urlencoded"), 告诉对方你是提交了一个urlencode编码的表单。
好的,说完了表单的提交来说怎么传送cookies。
其实传送cookies也很简单了,同样利用这个函数在HTTP头里添加东西,比如,我当前在落伍的cookies是
cdb_sid=ybBiK0; cdb_cookietime=315360000; cdb_oldtopics=D869008D; cdb_visitedfid=1D45; cdb_auth=AQYHXVFDGERdsggVQA1VYUgxQDwFVV1dUAlwFAFRXVwU%2FbAIJB1lUCg; cdb_fid45=1113370145
现在我要发送这个cookies就直接是 .setRequestHeader("Cookie","cdb_sid=ybBiK0; cdb_cookietime=315360000; cdb_oldtopics=D869008D; cdb_visitedfid=1D45; cdb_auth=AQYHXVFDGERdsggVQA1VYUgxQDwFVV1dUAlwFAFRXVwU%2FbAIJB1lUCg; cdb_fid45=1113370145")
当然,有些网站页面有页面判断功能,这个也不难,就是.setRequestHeader("Referer","来路的绝对地址")