JavaScript 完全 "tamper safe"变量

标签 javascript closures browser-extension

所以,问题来了。

我有这样的东西:

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

我知道没有脚本可以篡改或访问 __hostObject 是否绝对安全?

(如果可以,我有一个 CSRF vulnerability 或更糟。)

注意 1:这是一个浏览器扩展。我有比页面上运行的其他脚本更好的钩子(Hook)。我先于他们执行,甚至在他们加载之前就完成了。

注意 2:我知道一般情况下已多次询问脚本。我想知道是否有可能,如果我知道我在 任何其他脚本之前加载。

最佳答案

如果 __hostObject 是可删除的,那么您问题中的代码是安全的。

但是,我假设您的真实代码稍微复杂一些。在这种情况下,需要非常小心的编码,因为页面可以更改内置方法(例如 Function.prototype.call)以进入您的闭包并为所欲为。我在做这样的测试时,已经通过这种方式成功滥用了Kango、Crossrider等扩展框架的功能。

关于JavaScript 完全 "tamper safe"变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20593982/

相关文章:

javascript - 如何从 Wordpress Gutenberg ColorPicker 获取颜色以正确保存?

javascript 选定值

javascript - 如何将 MySQL 时间戳转换为 Javascript 日期?

JavaScript 动态闭包作用域

仅在滚动后的 Javascript 固定顶部导航栏

包含闭包的 Swift 数组

javascript - 谷歌闭包 : Passing 'this' into window. setInterval

用于 Web 浏览器的 Python URL 处理程序

javascript - 如何使用JS(DOM)聚焦/单击YouTube的注释框

java - 获取矩形区域内链接的URL