为什么要限制 Apache 用户执行脚本?

为什么要限制 Apache 用户执行脚本?

当 Apache 用户被允许通过 PHP 执行 bash 脚本时 - 为什么这被认为是危险的?我知道用户可以遍历整个文件系统,甚至查看机器上托管了哪些其他用户;他们还可以读取中的设置conf/httpd.conf。但这些信息如何帮助他们破解系统?假设 suexec 处于活动状态。

答案1

php.ini 内部有(通常是默认的)安全限制,以防止脚本使用过多内存、执行某些功能或执行不应该做的事情。

如果你允许 PHP 执行未受此限制的 shell 脚本,那么攻击者就有机可乘。例如,他们可以运行叉子炸弹并可能导致您的服务器离线。他们可以更轻松地参与 DDoS,或针对其他服务器运行漏洞扫描程序。如果您允许额外的抽象级别,那么调试某些事情从何处开始以及服务器究竟是如何受到攻击也会变得更加困难。

一般来说,如果服务器被妥善锁定,恶意代码就会受到限制,但服务器很少被妥善锁定。通常需要两三个漏洞才能攻破服务器 - 777 权限不会给您带来问题,除非有人破坏您的网站代码或有访问权限的恶意用户四处游荡,但为什么要冒这个险呢?

当人们试图进入您的服务器时,他们通常是盲目的。他们猜测您的 PHP 设置,猜测您的 Web 服务器的配置方式,猜测用户名(/etc/passwd 是所有人都可读的),猜测您的数据库名称。如果您允许他们读取配置文件,那么您将使他们的生活变得轻松很多。如果您允许他们通过电子邮件发送包含数据库连接字符串的用户名和密码的 PHP 文件,那么您将使这一切变得非常容易。如果您允许他们在您的服务器上运行他们想要的任何东西,那么入站防火墙(例如将 MySQL 限制到本地主机)的作用就有限。

相关内容