如何将沙盒程序的输出重定向到调用PHP文件?

时间:2013-01-06 15:11:05

标签: php gcc sandbox

我正在尝试在沙箱中执行c代码。我正在使用libsandbox 0.3.5。 这就是我的方法: 1)PHP文件使用shell_exec首先编译沙箱

 shell_exec("gcc -o sandbox Sandbox.c -lsandbox");

2)然后我还编译了要沙箱的程序

 shell_exec("gcc -static -o 19 19.c");

3)然后我执行程序

shell_exec("./sandbox ./19<inputFile>outputFile");

上面的代码从inputFile获取stdin并将输出写入19的程序的outputFile。沙盒程序返回“OK”,“RF”,“TL”,“ML”等。我希望沙箱程序的输出被接收到调用它的PHP文件中的字符串中。我该怎么做?

我面临的另一个问题是,即使有足够的权限,也不会创建ouptputFile。

另外,在沙盒中执行C程序会确保安全吗?如此,是否足够或我需要采取更多预防措施?

0 个答案:

没有答案