在node.js中创build一个自定义的沙箱(只能在某个目录下读取,不能在任何地方写入)

我正在尝试创build一个运行提交的脚本的应用程序,并且希望尝试对提交的脚本进行沙盒处理。 脚本需要能够读取某个目录(及其所有子目录),但不能写入,除了能够读取以外,不应该能够读取任何无法在浏览器中完成的事情(即使用http下载文件)。 我怎么去做这个?

我不认为Node具有内置的这种能力,但是你应该能够在一个* nix操作系统上运行一个“非受限的”节点作为一个受到严格限制的用户(其他操作系统也可能是这样,我不确定) 。 你也可能想看Node的VM模块 。

最后,我决定使用vm节点模块。 我基本上只是创build了一个名称空间,沙盒中运行的脚本可以使用它来过滤掉应该超出沙盒边界的恶意请求/请求。 名称框中包含了必要的fs方法,但未能执行任何修改除希望脚本能够修改的特定目录之外的任何目录的方法。