2015-12-20 125 views
-1

有沒有辦法安全地運行用戶提供的PHP腳本? 我想我必須禁用:我怎樣才能沙箱PHP腳本?

  • 的fopen和所有其他文件相關的功能
  • Exec和其他的方式來執行命令
  • 捲曲
  • 郵件來防止垃圾郵件

是這樣足夠? 我如何禁用所有這些東西(僅限於該腳本,不適用於我的腳本)?

感謝您的幫助。

+0

可能重複[有沒有辦法在php中執行沙箱中的php代碼](http://stackoverflow.com/questions/324726/is-there-a-way-to-execute-php -code-in-a-sandbox-from-within-php)以及許多其他 – JJJ

+0

@Juhana不,這個問題是關於一個環境沙箱,而我的是關於用戶提供的腳本的安全沙箱。 – Zhigalin

回答

2

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

實例化Runkit_Sandbox類創建了它自己的範圍和程序堆棧一個新的線程。使用傳遞給構造函數的一組選項,此環境可能被限制爲主要解釋器可以執行的一個子集,併爲執行用戶提供的代碼提供更安全的環境。

+0

謝謝,您還可以建議我必須禁用的功能/類的列表,以防止與主機的任何交互? – Zhigalin

+0

請看看所有可能的安全攻擊,然後禁用那些你不需要的功能。 http://php.net/manual/en/security.cgi-bin.attacks.php – Manikiran

+0

其實,在php中有一個完整的安全問題。 http://php.net/manual/en/security.php – Manikiran