JavaScript沙盒
-
24-10-2019 - |
题
我想让开发人员在JavaScript中为网站编写一些自定义应用他们在那里需要的功能,所以我想创建一个沙盒将是一个问题:
with(Namespace) {
//App code goes here where they can only access Namespace.*
}
解决这个问题如何容易,还有什么其他方法?宁愿不必调节每个提交的应用程序。
解决方案
要强制执行沙箱,您必须在执行该代码之前检查该代码,捕获任何非法定代码,如果发现了任何非签盖代码,请以某种方式阻止其运行。很长一段时间以来,非常乏味而容易出错。
Facebook至少在他们的早期平台上做到了这一点,我作为开发人员绝对不喜欢它。他们限制了可以使用的本地方法,并在某些人周围提供了有限的包装器。
其他提示
好吧,目前沙盒代码的选项是:
两者都可以创建一个 安全的环境 限制对全局对象和DOM的访问的位置。
这些项目的主要目的是允许您安全地嵌入第三方的小部件和任何Web内容。
想到的第一件事是 eval
. 。他们可以使用它在包装器沙盒外执行自定义代码。试图包装代码,很难阻止确定的开发人员。
关联 使用评估。
不隶属于 StackOverflow