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

时间:2009-08-07 15:35:16

标签: php linux

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

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

3 个答案:

答案 0 :(得分:6)

  • DocumentRoot的JailRoot

  • SafeMode ON允许访问文件 仅限于特定目录

  • 使用每个USER MPM限制系统
    apache进程的资源

  • 为memmory设置安全的php.ini设置 limit和max_execution_time

正如Saggi Malachi指出的那样,这是非常实验性的,你必须监控服务器上的操作,并有后备szenarios,例如。 cronjobs观看加载平均值,如果loadaverage高于阈值停止apache和sendmail。

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

答案 1 :(得分:0)

可以使用safemode保护用户访问或更改文件。

保护无限循环需要设置php解释器生成网站的一些时间。 set_time_limit

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

可能还有很多其他更严重的问题。这不是一件容易的事。

答案 2 :(得分:0)

也许我可以使用服务器端Javascript代替SpiderMonkey

听起来更安全!