确保用户输入代码在执行时不会损坏服务器

时间:2010-10-19 01:34:57

标签: php security shell

我正在开发一个可以让用户输入一些代码的Web应用程序,它将被编译和执行,并且可以看到结果。我正在用PHP编写应用程序,我需要一种方法来确保如果用户输入一些有害代码(这个例子是PHP),它就无法执行和销毁我的服务器。例如:

<?php
shell_exec('rm -rf /');
?>

我认为上传代码文件的权限可能会很好,但我想要一些辅助输入。谢谢!

1 个答案:

答案 0 :(得分:4)

除非您是安全专家,否则不要这样做。有无数种方法可以摧毁你无法预见的东西。

唯一可以接受的情况是,如果您为每个用户提供系统中具有其自己的主目录,权限集等的实际用户,并确保他们实际上不能触及任何不属于他们的内容。而且,即便如此,你仍会受到你没想到的东西的打击。

我不相信自己会写这样的东西10年,最低限度,即便如此。用户永远不会值得信赖,并且总会有人更聪明。我没有办法给出那种自由。