2009-08-07 215 views
5

我正在編寫一個旨在允許用戶提供代碼的協作項目。用戶將能夠擴展一個類,添加功能等,並將代碼提交回服務器進行定期執行。安全地在服務器上執行用戶的PHP腳本

是否有安全的方式來執行用戶的PHP代碼?一種萬無一失的消毒方法?無限循環呢?或者我應該提供一種不同的腳本語言?

+3

這不應該通過在StackOverflow上提出問題來處理。聘請一位專家,否則你將面臨很大的麻煩 – 2009-08-07 15:37:33

+0

這是我今晚與朋友和b33r合作的一個玩具項目。我不認爲聘請的專家會留下深刻的印象:D – 2009-08-07 15:52:39

回答

6
  • JailRoot的DocumentRoot的

  • 安全模式ON,只允許在特定目錄

  • 使用Access文件 每個用戶MPM到
    資源限制系統的Ap​​ache進程

  • 設置內存安全php.ini設置 limit和max_execution_time

而Saggi Malachi指出,這是非常實驗性的,你必須監視服務器上的動作,並有回退szenarios,例如。 cronjobs觀察平均負載,如果loadaverage超過閾值停止apache和sendmail。

其他好主意是編譯自己的php和拒絕訪問可能被用戶「利用」的php函數。

0

防止用戶訪問或更改文件可以使用safemode完成。

保護無限循環需要設置一段時間php解釋器獲取生成該網站。 set_time_limit

您還需要阻止用戶與外部服務器通信,以避免其被用作垃圾郵件發件人。 allow_url_fopen

可能還有很多其他更嚴重的問題。這並非易事。

0

也許我可以使用服務器端的JavaScript,而不是與SpiderMonkey

聽起來更安全!

相關問題