首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在JavaScript中沙箱到底是什么?

在JavaScript中沙箱到底是什么?
EN

Stack Overflow用户
提问于 2011-08-13 01:18:33
回答 3查看 3.2K关注 0票数 10

我理解术语沙箱。但我在JS中有限的技能无法帮助我理解JS中的沙箱是什么。那么,沙箱到底是什么呢?除了安全性之外,为什么我们需要沙箱JS?

EN

回答 3

Stack Overflow用户

发布于 2011-08-13 01:22:29

javascript沙箱完全按照您所说的做。它限制了脚本可以做的范围。在虚拟化脚本可以调用的资源方面也有好处。这允许沙箱主机编组这些资源以获得更好的性能,并阻止无休止的循环脚本导致整个浏览器崩溃。

票数 3
EN

Stack Overflow用户

发布于 2011-08-13 01:29:17

沙箱是创建一个作用域的行为,在这个作用域中,应用程序的任何其他部分都不能操作(除非有机会这样做)。更具体地说,这通常是一个函数作用域,它公开了其中实际发生的事情的有限子集。

建立在沙盒思想基础上的一个库是YUI3。应用程序的基本单元是YUI实例沙箱:

代码语言:javascript
复制
var Y = YUI(); // creates a configurable YUI instance

// Creates a sandbox for one part of your application,
// including the 'node' module.
Y.use('node', function(Z) {
    // Z is a YUI instance that's specific to this sandbox.
    // Operations inside it are protected from outside code
    // unless exposed explicitly. Any modules you request in
    // use statement will be separately instanced just for
    // this sandbox (in this case, the 'node' module)
    //
    // That way, if another part of your application decides
    // to delete Z.Node (or worse, replace it with a
    // malicious proxy of Z.Node) the code you've written
    // here won't be affected.
});

沙箱的优点主要是降低应用程序的复杂性:因为沙箱是不可变的,所以更容易推理和验证。它们还提高了运行时安全性,因为设计良好的沙箱应该能够作为页面上运行的其他脚本的黑盒。它不能防止所有可能的攻击,但它可以防止许多简单的攻击。

票数 3
EN

Stack Overflow用户

发布于 2011-08-13 01:34:29

沙箱为脚本创建了一个有限的使用范围。假设你正在为一个网站编写代码,当你不确定他们是否会像你期望的那样工作时,避免对一个实时网站进行编辑,这是值得的--没有测试是不可能真正确定的。即使它工作正常,如果你有机会对JS进行一系列的修改,直到你按你喜欢的方式调整它,你很容易在你更新它的同时扰乱任何试图使用该网站的人。

由于沙箱的有限性质,当您打破东西时,也更容易分辨出哪些东西被打破了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7043882

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档