gcc沙盒工具 – Ubuntu 12.04上的AppArmor / CHROOT监狱
我们有一个Node应用程序作为C ++沙箱工具的前端,它使用gcc编译代码并将结果输出到浏览器。 例如 exec("gcc -o /tmp/test /tmp/test.cpp", function (error, stdout, stderr) { if(!stderr) { execFile('/tmp/test', function(error, stdout, stderr) {}); } }); 这工作正常。 然而,正如你所想象的那样,如果将它公诸于世 – 这是一个安全的噩梦 – 所以我想到了两个select来保护我的堆栈: 1)CHROOT监狱 – 但这本身不足以防止目录遍历/文件访问。 2)AppArmor? 所以我的问题是真的,我怎么能保护我的堆栈可能来自任何nasties: A)使用gcc编译未知的代码 B)执行编译的代码