0

我想为一个编程教程网站写一个简单的 PHP 小提琴

类似于Code Academy网站

示例 代码学院 PHP Fiddle 示例

我想过使用 Code Mirror 作为文本编辑器

但是我如何才能安全地执行用户编写的 PHP 代码?

我尝试在他们的编辑器中使用 file_put_contents() 和 file_get_contents

它有效:) 它安全吗?

我不能使用像runkit这样的扩展, 因为我在共享主机上:(

4

2 回答 2

0

简短的回答:你不能。您需要某种沙箱,这将需要比共享主机更多的系统访问权限。您需要使用您自己的沙盒 PHP 可执行文件设置您自己的主机以实现此目的。

因为你有它,它绝对不安全。

于 2013-06-09T21:04:53.307 回答
0

我认为最安全的方法是编辑 PHP 源代码并删除最危险的函数,编译它并从真正的 PHP 运行这个新的 PHP 环境。

eval在我看来,解析用户输入并发送到是一个安全漏洞。您将无法检测到危险的陈述,例如

$a = 'ma';
$a .= 'il';
{$a}(...);

等等

于 2013-06-09T21:07:50.337 回答