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

时间:2014-03-21 12:06:50

标签: node.js sandbox fs

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

2 个答案:

答案 0 :(得分:1)

我不认为Node内置了此功能,但您应该能够运行" unsandboxed"作为严格限制用户的* nix操作系统上的节点(也可能在其他操作系统中,我不确定)。您可能还想查看Node VM module

答案 1 :(得分:0)

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