安全地在服务器上执行用户的PHP脚本

问题描述:

我正在编写一个旨在允许用户提供代码的协作项目。用户将能够扩展一个类,添加功能等,并将代码提交回服务器进行定期执行。安全地在服务器上执行用户的PHP脚本

是否有安全的方式来执行用户的PHP代码?一种万无一失的消毒方法?无限循环呢?或者我应该提供一种不同的脚本语言?

+3

这不应该通过在StackOverflow上提出问题来处理。聘请一位专家,否则你将面临很大的麻烦 – 2009-08-07 15:37:33

+0

这是我今晚与朋友和b33r合作的一个玩具项目。我不认为聘请的专家会留下深刻的印象:D – 2009-08-07 15:52:39

  • JailRoot的DocumentRoot的

  • 安全模式ON,只允许在特定目录

  • 使用Access文件 每个用户MPM到
    资源限制系统的Ap​​ache进程

  • 设置内存安全php.ini设置 limit和max_execution_time

而Saggi Malachi指出,这是非常实验性的,你必须监视服务器上的动作,并有回退szenarios,例如。 cronjobs观察平均负载,如果loadaverage超过阈值停止apache和sendmail。

其他好主意是编译自己的php和拒绝访问可能被用户“利用”的php函数。

防止用户访问或更改文件可以使用safemode完成。

保护无限循环需要设置一段时间php解释器获取生成该网站。 set_time_limit

您还需要阻止用户与外部服务器通信,以避免其被用作垃圾邮件发件人。 allow_url_fopen

可能还有很多其他更严重的问题。这并非易事。

也许我可以使用服务器端的JavaScript,而不是与SpiderMonkey

听起来更安全!