所以,这就是问题所在。
我有类似的东西:
// Dangerous __hostObject that makes requests bypassing
// the same-origin policy exposed from other code.
(function(){
var danger = __hostObject;
})();
delete __hostOBject;
我知道没有脚本可以篡改或访问__hostObject
,我是否完全安全?
(如果他们可以,我有CSRF vulnerability或更糟。)
注1:这是针对浏览器扩展的。我有比在页面上运行的其他脚本更好的钩子。我在他们面前执行,我们在他们加载之前就完成了。
注意2:我知道一般会多次询问这个脚本。我想知道如果我知道在任何其他脚本之前加载是否可行。
答案 0 :(得分:5)
如果__hostObject
可删除,则问题中的代码是安全的。
但是,我认为您的实际代码稍微复杂一些。在这种情况下,需要非常仔细的编码,因为页面可以更改内置方法(例如Function.prototype.call
)以进入关闭并执行他们想要的任何邪恶的事情。当我进行这样的测试时,我通过这种方法成功地滥用了扩展框架的功能,例如Kango和Crossrider。
答案 1 :(得分:0)
不会简单地添加断点并重新加载脚本会暴露您的__hostObject