apache+php-fpm 和共享环境中的安全性与 apache+suexec+mod_fastcgi 相比

apache+php-fpm 和共享环境中的安全性与 apache+suexec+mod_fastcgi 相比

我一直在使用带有 suexec 和 mod_fastcgi 的 Apache。它以选定的系统用户身份启动 PHP 处理程序并通过 PIPES(fastcgi 协议)监听请求。它运行良好,但无法通过多个处理程序共享操作码。

我一直在研究 php-fpm 方法。它的文档记录非常糟糕。我所看到的是,它仅在选定的系统用户下作为 TCP fastcgi 服务器(如 127.0.0.1:9999)运行,并且 Apache 必须使用 FastCGIExternalServer 或 fastcgi 代理模式连接到它。

什么可以阻止其他本地用户连接到 127.0.0.1:9999 并将他们自己的代码传递给以其他系统用户身份运行的处理程序?

在共享环境中这似乎完全不安全。我是不是漏掉了什么?

答案1

是的,他们可以发送请求,但这与他们在浏览器或 wget 中发出请求有什么不同?他们得到的只是 php 输出。

它们可能会通过向你的 php-fpm 服务器发送请求而导致问题。但它们发送的任何输入都应该得到处理,就像来自浏览器请求一样。

但是,它们是在完成任何 apache/nginx 安全检查(如 mod_security 等)之后介入的。因此,如果您有一个易受攻击的 php 应用程序,这可能是一个令人担忧的问题。

但是如果您将池设置为将每个池作为单独的用户运行,并且将 php 文件设置为非全球可读,那么情况应该不会太糟糕,除非我也遗漏了一些东西。

相关内容