2011-08-29 88 views
4

可能重复:
PHP sandbox/sanitize code passed to create_function如何安全地执行用户提交的PHP代码

我的非常普遍的问题道歉,但我需要一些指导。什么是执行用户提交的PHP代码最理想的方式?考虑JSFiddle for PHP。我知道有些网站会这样做,例如http://writecodeonline.com/php/,但我认为这是PHP4,并且在我试图运行的代码的一半的情况下无法使用。我也知道我可以简单地禁用所有“有风险”的功能,但这并不好玩:)

我知道在PHPFiddle.com上我们可以引用一个PHPFiddle.com,就像我们一直依赖的那样在JSfiddle或JSbin上。

我想沿着建立在我的箱子虚拟主机所以无论用户尝试使用文件系统的功能将被限制在沙箱线的东西。我不知道如何去做这件事,或者如果它会导致我的服务器有几个这样的运行。

想法?

+0

看看http://www.ideone.com/他们说这是PHP 5.2.11那里(悬停后的状态栏信息) - 虽然我没有测试过重度。 –

回答

1

我一直都想知道,如果有一个Cloud IDE,我可以托管我所有的PHP文件,测试它,共享它等等,基本上它应该能够完成我在我的计算机上所做的一切。直到最近,我偶然发现了一个名为Kodingen的非常漂亮的Cloud IDE。它是一个非常有用的云应用程序,有时非常方便。但是下面是一些为您提供运行PHP代码的服务的列表。

1

看一看Runkit_Sandbox:http://php.net/manual/en/runkit.sandbox.php

实例化Runkit_Sandbox类创建了它自己的范围和程序堆栈一个新的线程。使用传递给构造函数的一组选项,此环境可能被限制为主要解释器可以执行的一个子集,并为执行用户提供的代码提供更安全的环境。