我客户的网站最近被破坏了,他们正在寻求减轻这种风险的方法。他们有一个运行 apache 和 mod_php 的专用服务器。该网站由安装在不同文件夹中的三个独立的 php 应用程序组成(客户门户脚本、wordpress 和自定义数据库驱动脚本)。他们的安全审计建议将每个脚本隔离,这样如果其中任何一个被黑客入侵,其他两个脚本就不会被破坏等。他们还建议使用 fast-cgi 而不是 mod_php。还提到了 Suexec,尽管不清楚为什么建议这样做。
有人能确认这是否合理并且实际上可行吗?如果可以,实现所提议的安全解决方案的最佳方法是什么?
答案1
使用 suPHP 或 suEXEC (+ fcgi/cgi) 是保护您的服务器(分离应用程序)的一个好决定。
但要做到这一点,您需要为每个应用程序设置不同的虚拟主机,例如:app1.domain.com、app2.domain.com、app3.domain.com。如果您的网站结构与上述类似,那么设置 3 个虚拟主机、使用 3 个不同的用户/组来为 php 提供服务(使用上述方法 - suexec、suphp)就没有问题了。
答案2
如果是这样,那么实现所提出的安全解决方案的最佳方法是什么?
每个站点最好使用虚拟机(KVM、OpenVZ、XEN、Jail)或使用 chroot(mod_chroot、php-fpm)。