JavaScript完全"篡改安全"变量

Ben*_*aum 13 javascript closures browser-extension

所以,这是问题所在.

我有类似的东西:

// Dangerous __hostObject that makes requests bypassing 
// the same-origin policy exposed from other code.
(function(){
    var danger = __hostObject;
})();
delete __hostOBject;
Run Code Online (Sandbox Code Playgroud)

知道没有脚本可以篡改或访问,我是否完全安全__hostObject

(如果可以,我有一个CSRF漏洞或者更糟.)

注1:这适用于浏览器扩展.我有比在页面上运行的其他脚本更好的钩子.我在他们面前执行,在他们甚至装满之前我已经完成了.

注2:我知道一般会多次询问这个脚本.我想知道是否有可能,如果我知道我任何其他脚本之前加载 .

Rob*_*b W 5

如果__hostObject可删除,则问题中的代码是安全的.

但是,我认为您的实际代码稍微复杂一些.在这种情况下,需要非常仔细的编码,因为页面可以改变内置方法(例如Function.prototype.call)进入你的闭包并做任何他们想要的邪恶事情.当我执行这样的测试时,我通过这种方法成功地滥用了扩展框架的功能,例如Kango和Crossrider.