我想让开发人员在JavaScript中为网站编写一些自定义应用他们在那里需要的功能,所以我想创建一个沙盒将是一个问题:

with(Namespace) {
    //App code goes here where they can only access Namespace.*
}

解决这个问题如何容易,还有什么其他方法?宁愿不必调节每个提交的应用程序。

有帮助吗?

解决方案

要强制执行沙箱,您必须在执行该代码之前检查该代码,捕获任何非法定代码,如果发现了任何非签盖代码,请以某种方式阻止其运行。很长一段时间以来,非常乏味而容易出错。

Facebook至少在他们的早期平台上做到了这一点,我作为开发人员绝对不喜欢它。他们限制了可以使用的本地方法,并在某些人周围提供了有限的包装器。

其他提示

好吧,目前沙盒代码的选项是:

两者都可以创建一个 安全的环境 限制对全局对象和DOM的访问的位置。

这些项目的主要目的是允许您安全地嵌入第三方的小部件和任何Web内容。

想到的第一件事是 eval. 。他们可以使用它在包装器沙盒外执行自定义代码。试图包装代码,很难阻止确定的开发人员。

关联 使用评估。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top