在Ubuntu上强化PHP部署

我被要求在我pipe理的Web服务器上创build一个目前只运行Python应用程序的PHP环境。 这些应用程序的作者不一定有编程背景,所以我想限制他们可能做错的地方。

我使用Ubuntu 9.04,并知道我应该禁用register_globals ,但还有什么可以/我应该限制?

这里是我要input的东西的列表。 还有其他的事情可以做,比如Suhosin ,但是第一个环节是一个很好的开始。

由于您不能真正相信应用程序开发人员编写安全的代码,因此您必须限制非安全的PHP代码可能提供的攻击媒介。 使用用户input没有适当的消毒作为SQL或作为open()的参数是出错的经典例子。

我的简短列表:

  • 把PHP环境放在chroot监狱里,以限制对主机的风险。
  • 确保php应用程序不会访问使用其他数据库的相同数据库。
  • 限速(和监视)外发邮件。 如果有办法发送带有用户指定的内容和地址的电子邮件,一些垃圾邮件发送者迟早会发现并利用它。

我相信还有很多其他的事情我不知道,或者我不记得了。

pipe理员无法准备的东西也很多。 例如,很难控制跨站脚本风险,并确保应用程序内部的机制不鼓励任何恶意用例,例如将应用程序用作恶意软件(如rootkit)的下拉框。