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

当Apache用户被允许通过PHP执行bash脚本 – 为什么它被认为是危险的? 我知道用户可以遍历整个文件系统,甚至可以看到机器上托pipe了哪些用户。 他们也可以读取conf/httpd.conf的设置。 但是,这些信息将如何帮助他们破解系统? 考虑suexec是活跃的。

在php.ini中有(通常是默认的)安全限制,以防止脚本使用太多的内存,执行某些function或通常做他们不应该。

如果你允许PHP执行一个不受限制的shell脚本,你就为攻击者开放了可能性。 例如,他们可以运行一个叉炸弹 ,并可能使您的服务器脱机。 他们可以更轻松地参与DDoS,或者对其他服务器运行漏洞扫描程序。 如果您允许额外的抽象级别,那么也可能更难以debugging哪里开始出现问题,以及服务器如何被入侵。

一般来说,如果服务器被正确locking,那么恶意代码是有限的,但服务器很less被正确locking。 它通常需要两三个漏洞来破坏服务器–777权限不会导致你的问题,除非有人妥协你的网站代码或恶意用户访问stream浪,但为什么冒这个险?

当人们试图进入你的服务器时,他们通常是盲目的。 他们猜测你的PHP设置,他​​们猜测你的web服务器是如何configuration的,他们猜测用户名(/ etc / passwd是世界可读的),他们猜测你的数据库名称。 如果你允许他们读取configuration文件,你会让他们的生活变得更容易。 如果您允许他们通过电子邮件发送包含数据库连接string的用户名和密码的PHP文件,那么您可以非常容易。 入站防火墙(如限制MySQL到本地主机)的使用是有限的,如果你让他们从你的服务器运行任何他们想要的。