你有什么建议设立一个共享服务器与php从安全性的观点?

  • Apache mod_php(怎么你安全吗?其他比safe_mode,因为它不会在PHP6)
  • Apache CGI+suexec
  • 程序和产卵FastCGI每户

LE:我不感兴趣,在使用一个已经由控制小组作为我在写我自己,所以我想知道什么是最佳的方式设置这个我自己。我想在使用程序和产卵fastcgi每个主办的用户使fcgi进程下运行他的全权证书(有一个教程上的这个程序wiki).这个会有点安全,但这会影响性能(大量的用户/用户存所需的每fcgi),以至于它不是一个可行的解决方案吗?

有帮助吗?

解决方案

就个人而言,虽然程序是确定的,我会去与服务+FastCGI如果你最终会有一个轻型网络服务器+FastCGI的解决方案。我已经运行的基准和读取所有的代码和服务是一个数量级以更快的/更稳定的负载下--这是非常好的。

但是,这不是你的问。基本上,我说的有一系列的安全/功能比速度权衡在这三个选项清单,你只需要决定在哪里你想要的。如果你是一个公共托管服务提供商与不可信的用户安装的上帝知道-什么PHP应用程序,你会更倾向的安全,如果这就是共享更多的信任的用户则可能倾向的性能。这里是我的想法:

CGI+suexec: 这是最安全、最有效/可扩展对于你而言的数字的用户/网站,在一个共同主办的环境。工艺产生和使用的存储器只能作为请求。当然,CGI-产卵使这种最慢的执行时的个人的脚本。多么慢?很好你会需要的基准,但一般来说,如果人们正在运行的长期运行的应用程序(即像WordPress这需要0.25-0.5秒只是载入其库和初始化对每个申请),然后CGI-产卵刑的开始看起来很漂亮可以忽略不计。

FastCGI: 这里的问题(它并不重要,如果你webserver是Apache程序或服务)是搞清楚有多少FCGI儿童的进程,让每个用户离开运行,因为每个过程吃的存储器等大小的PHP interpreter(在Linux不是所有的这是当然的,但我跑题了).而且,与mod_php,这些过程不是在用户之间共享的所以你必须限制每户。例如,酷logo盖这在3为他们的客户-现在,为一个客户运行的一个网站,获取突发的超过2-5页面浏览第二,这实际上是非常糟糕,因为这些要求只是堆起来,该网站挂起。现在,我喜欢FastCGI轻型网络服务器的时候我正在运行的应用程序上的 专用 服务器群集,在我可以给应用程序的数以百计的FCGI的儿童(所有与网络服务器privs当然,à la Apache/prefork+mod_php).但是,我不认为很有意义,对于共同主办的,你必须拨出/限FCGI儿童每户。

Apache+mod_php: 最不安全因为一切都在运行的网络服务器privs,但你的游泳池的生活PHP进程是共享的所以它是最好的性能结束。从一开发的角度来看,我不能容忍php_safe模式,并从一个系统管理员的角度来看,这真的只有一种错觉的安全(这可以缓解对愚蠢的用户,但不保护从一个实际的攻击),所以我会实际上反而有CGI如果我的其他选项包括safe_mode.

酷logo并排序的一个混合体,他们这样做Apache CGI+suexec默认,但让(小)的百分比自己更多的用户复杂的选举做FCGI如果他们想要的,受到的帽和他们自己的监测存储器的使用。这节省了一吨的存资源和能FCGI为每个人都默认。

另一个问题,如果你在谈论的标准商品共同主办,Apache是齐全的,具有模块的事情(包括这样的东西mod_security你可能想要),和你的用户将会喜欢它因为他们所有的.要配置将工作等。-你会碰到头痛支持与其他任何东西,当他们去安装或推翻任何(一个很小的一个问题,如果我们谈论的内部用户使用)。

我个人建议只是保持简单的开始,并打算与CGI+suexec最佳的安全和功能.如果用户要FCGI或mod_php和你有一个很好的通道的开放对建议/通信他们,他们会问的,但这是一个更大的头痛你只有边缘性的改进对于他们,所以我的建议是不做任何的他们最初但是敏感的,如果他们叫嚣。

我同情的渴望做些什么"有趣"等程序+FCGI,而不是标准的阿帕奇+CGI+suexec,但我内心深处我真的不能推荐它。

如果你正在运行多个服务器上,你可能会把CGI在一些和别的东西对于电力的用户上的其他人。并确保有cron查询所有www dirs喜欢的事情老屁股版本的参!

其他提示

我建议 Suhosin

关于PHP+FastCGI和安全性,检查 这篇文章.

面临的挑战与保护共享 主机服务器是如何安全的 网站的攻击,无论是从 外部和内部。PHP有 建立功能,以帮助,但是 最终这是错误的地方 解决这一问题。

我已经写了一些 解决方案的工作,但一个选择 我已经要求一次又一次 看看是使用PHP+FastCGI.的 信念是,使用FastCGI会 克服的效能问题 Apache suexec或mod_suphp,因为 FastCGI进程的持续存在之间的网页 景。

但在此之前,我们可以看业绩, 第一个问题是:究竟怎么做 我们得到PHP和FastCGI运行为 不同的用户在一个网络服务器 在第一个地方吗?

我已经被使用 InterWorx 大约一年,现在已经非常深刻的印象。它维持一个灯服务器与chroots你的脚本安全。

我还有用 Ensim, 但还没找到它作为友好,快,它不具有许多特征。加上它的费用多很多。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top