我想让开发人员在Javascript中为网站编写一些自定义应用程序,但我想用沙箱保护它,这样他们就不能做任何淘气的事情,比如重定向用户,将正文显示设置为none等。我在Javascript中有一个命名空间,其中存在他们需要的所有函数,所以我想创建一个沙箱将是一个问题:
with(Namespace) {
//App code goes here where they can only access Namespace.*
}如何轻松地绕过这一点,还有什么其他方法可以做到?宁可不必审核每个提交的应用程序。
发布于 2010-06-07 11:32:11
要强制执行沙箱,您必须在代码执行之前检查代码,捕获任何不合法的代码,如果发现,则以某种方式阻止它运行。在很长一段时间内非常乏味且容易出错。
Facebook至少在早期的平台上做到了这一点,作为一名开发人员,我肯定不喜欢它。它们限制了可以使用的本机方法,并对一些方法提供了有限的包装器。
发布于 2010-06-07 12:21:49
那么,目前沙箱代码的选项是:
两者都允许您创建一个安全的环境,其中对全局对象和DOM的访问是受限制的。
这些项目的主要目的是允许您安全地嵌入widgets和来自第三方的任何web内容。
发布于 2010-06-07 11:28:21
首先想到的是eval。他们可以使用它在包装器沙箱之外执行自定义代码。通过试图包装代码来阻止决心坚定的开发人员将是非常困难的。
Link的用法。
https://stackoverflow.com/questions/2986908
复制相似问题