Tag: sanitize

安全沙盒并执行用户提交的JavaScript?

我希望能够让用户提交任意的JavaScript代码,然后将其发送到Node.JS服务器,并在将输出发送回多个客户端(如JSON)之前安全地执行。 eval函数让人想起,但我知道这有多个安全问题(用户提交的代码将能够访问节点的文件API等)。 我曾经看到过一些像Microsoft Web Sandbox和Google Caja这样的项目,它们允许执行清理标记和脚本(用于在网站上embedded第三方广告),但似乎这些是客户端工具,我不确定他们是否可以在Node中安全使用。 有没有一个标准的方法来沙盒和在Node中执行不可信的JavaScript,获得输出。 尝试和做这个服务器端是错误的吗? 编辑:用户能够充分利用JavaScript的全部function并不重要,事实上,能够挑选并select将提供给用户代码的API将是优选的。 编辑:我打算继续前进,并与我发现的更新。 这个Sandcastle模块( bcoe/sandcastle sandcastle)似乎旨在做我脑海中所想的事情。 不知道它是多么的安全,但是因为我不是那么重要,我想我会试试。 如果我能够成功地做到这一点,我会添加自己的答案。