PHP - 在'安全模式'下运行外部函数

时间:2013-07-08 11:31:41

标签: php sandbox

我试图用PHP编写一个网站,允许用户输入PHP代码,然后能够在我的服务器上运行它。但是,我希望能够禁用某些功能(文件访问,数据库访问等)。基本上,我希望代码运行时不会对我的服务器造成任何风险,如果代码确实试图做一些危险的事情,我只是希望代码停止运行(我不介意它只是停止运行,产生错误,或在忽略危险代码时继续进行。)

这是可能的,如果是这样,我怎么能实现这个目标? 谢谢:))

3 个答案:

答案 0 :(得分:0)

可以使用库进行一些简单的检查或限制。

查看名为RunKit_Sandbox http://php.net/manual/en/runkit.sandbox.php或PHPSandbox的PECL(PHP Extensions)扩展。

在Google上寻找的关键是PHP Sandbox,它会找到类似的库。

答案 1 :(得分:0)

vi php.ini

然后找到disable_functions, 根据需要禁用这些功能!像这样 : disable_functions = exec,passthru,popen,proc_open,shell_exec,system,phpinfo,assert,chroot,getcwd,scandir,delete,rmdir,rename,chgrp,chmod,chown,copy,mkdir,file,file_get_contents,fputs,fwrite,dir < / p>

答案 2 :(得分:0)

我实际上开发了一个专门用于这些用例的包。它可以完全配置,甚至可以用来覆盖危险的函数和全局变量。

https://github.com/fieryprophet/php-sandbox