2011-08-29 86 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類創建了它自己的範圍和程序堆棧一個新的線程。使用傳遞給構造函數的一組選項,此環境可能被限制爲主要解釋器可以執行的一個子集,併爲執行用戶提供的代碼提供更安全的環境。