大風(fēng)起兮云飛揚(yáng)
比如
file:///D:/soft/develop/env/sites/www.a.com/test.html
代碼片段如下:
......
var xhr=new XMLHttp();
function postURLRet(url, data){
if(xhr) {
xhr.open("POST",url,false);
xhr.setRequestHeader(Content-Type,application/x-www-form-urlencoded);
xhr.send(data);
return xhr.responseText;
}
return "";
}
在IE 7里,默認(rèn)會(huì)提示加載不安全activex控件,要求確認(rèn)
確認(rèn)以后,就可以跨域了
Firefox 3 沒(méi)有這個(gè)問(wèn)題
但是
世上的事情往往出在這個(gè)但是上面,
很矬的事情,IE7的本地文件居然可以ajax跨域
,電腦資料
《很矬的事情,IE7的本地文件居然可以ajax跨域》(http://m.dameics.com)。firefox的ietab擴(kuò)展,則沒(méi)有任何安全提示與確認(rèn),直接跨域了。
不知道其他以IE為核心的第三方瀏覽器會(huì)不會(huì)也存在這種問(wèn)題。
總的看來(lái),IE還是不應(yīng)該讓本地文件能夠跨域,即便是需要用戶確認(rèn),這樣做也是非常不妥的,等于多了一條能夠打破安全模型的路徑,雖然設(shè)了個(gè)卡子,誰(shuí)知道哪天不會(huì)被繞過(guò)去呢。
本地文件跨域如果和其他漏洞結(jié)合起來(lái),比如下載任意文件(無(wú)執(zhí)行,能預(yù)測(cè)路徑),威力還是會(huì)非常巨大的。
兩個(gè)雞肋漏洞相加,可能就變成一個(gè)很牛B的漏洞了。