我想设置一个服务器,让我的客户可以通过 PHP 脚本编辑 Apache 别名,这样他们就不需要拥有 root 帐户。他们需要做的就是通过浏览器编辑别名。
我怎样才能用 PHP 完成这样的任务?
为了避免安全噩梦,您需要在用户输入和后端处理之间建立严格的隔离墙。这在将数据插入数据库时很重要;在编辑重要文件(例如 Apache 配置)时,这一点更为重要。
如果您绝对必须这样做,最好的方法是创建两个独立的流程:第一个是面向客户的一面。这将需要:
在后端,您将创建一个进程(可能通过 cron 运行),该进程将从数据库中读取数据并重新创建虚拟主机。用户应该无法访问此过程。
验证将是整个过程中最重要的部分。如果您允许您的用户将未过滤或过滤不良的数据插入到您的 Apache 配置中,那么预计会发生不好的事情。