大风起兮云飞扬
比如
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里,默认会提示加载不安全activex控件,要求确认
确认以后,就可以跨域了
Firefox 3 没有这个问题
但是
世上的事情往往出在这个但是上面,
很矬的事情,IE7的本地文件居然可以ajax跨域
,电脑资料
《很矬的事情,IE7的本地文件居然可以ajax跨域》(http://meiwen.anslib.com)。firefox的ietab扩展,则没有任何安全提示与确认,直接跨域了。
不知道其他以IE为核心的第三方浏览器会不会也存在这种问题。
总的看来,IE还是不应该让本地文件能够跨域,即便是需要用户确认,这样做也是非常不妥的,等于多了一条能够打破安全模型的路径,虽然设了个卡子,谁知道哪天不会被绕过去呢。
本地文件跨域如果和其他漏洞结合起来,比如下载任意文件(无执行,能预测路径),威力还是会非常巨大的。
两个鸡肋漏洞相加,可能就变成一个很牛B的漏洞了。