firefox下的document不能隨便用var document來(lái)覆蓋,本來(lái)是一個(gè)挺好的權(quán)限保護(hù)機(jī)制,但是它對(duì)document的保護(hù)也就到此為止了。表面上看起來(lái)系統(tǒng)提供的document.domain、document.cookie等接口似乎不允許開發(fā)者隨便修改,但是實(shí)際上呢:
document.__defineGetter__( "cookie",
function(){
return this.c;
}
);
document.__defineSetter__( "cookie",
function(sText){
this.c="HACK : "+sText;
}
);
document.__defineGetter__( "domain",
function(){
return this.d;
}
);
document.__defineSetter__( "domain",
function(sText){
this.d="HACK : "+sText;
}
);
document.cookie="fake cookie";
alert(document.cookie)
document.domain="fake domain"
alert(document.domain)
document實(shí)際上已經(jīng)成了一個(gè)傀儡,隨便開發(fā)者擺弄了。因此我們做基于document.domain和document.cookie的一些對(duì)第三方判斷時(shí)候要小心。