我被要求在我管理的 Web 服务器上创建一个 PHP 环境,该服务器目前仅运行 Python 应用程序。这些应用程序的作者不一定具有编程背景,因此我想限制他们可能犯的错误。
我正在使用 Ubuntu 9.04,并且知道我应该register_globals
禁用它,但我还能/应该限制什么?
答案1
答案2
由于您无法真正信任应用程序开发人员编写安全代码,因此您必须限制非安全 php 代码可能提供的攻击媒介。使用未经适当清理的用户输入作为 SQL 或作为 open() 的参数是出错的典型示例。
我的简要清单:
- 将 php 环境放入 chroot jail 中,以限制对主机的风险。
- 确保 php 应用程序不会访问与其他应用程序相同的数据库。
- 限制(并监控)外发邮件的速率。如果有办法发送带有用户指定内容和地址的电子邮件,某些垃圾邮件发送者迟早会发现并利用它。
我确信还有很多其他的事情要么我不知道,要么我再也记不起来。
作为管理员,还有很多事情你无法预料。例如,很难控制跨站点脚本风险,也很难确保应用程序内部的机制不会鼓励任何恶意使用情况,例如将应用程序用作 rootkit 等恶意内容的存放箱。