http://www.blogjava.net/emu/archive/2011/01/19/343192.html
firefox下的document不能随便用var document来覆盖,本来是一个挺好的权限保护机制,但是它对document的保护也就到此为止了。表面上看起来系统提供的document.domain、document.cookie等接口似乎不允许开发者随便修改,但是实际上呢:
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实际上已经成了一个傀儡,随便开发者摆弄了。因此我们做基于document.domain和document.cookie的一些对第三方判断时候要小心。
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实际上已经成了一个傀儡,随便开发者摆弄了。因此我们做基于document.domain和document.cookie的一些对第三方判断时候要小心。
本文揭示了在Firefox浏览器中,尽管系统默认保护了Document对象的属性如document.domain和document.cookie,但通过定义getter和setter方法,开发者可以绕过这些保护机制,随意修改这些属性值。
825

被折叠的 条评论
为什么被折叠?



