这是对另一个问题的评论,如果有人能够向我解释这个原因,我会喜欢它。
我build议让Apache将给定VHost的错误logging到用户的主目录中。 这被击倒,因为它是不安全的。 为什么?
我在回复评论中要求澄清,但是我得到的只是在根目录下没有root权限的文件夹中写入是不安全的。 再次,有人可以解释吗?
谢谢,
巴特。
因为恶意用户可以恶意地尝试指向文件root
正在写入不同的位置 。 这不是那么简单,但真的有可能。
例如,如果一个用户会find从假定的Apache日志到/ etc / shadow的方式创build符号链接的方法,那么您将会突然发现一个不可用的系统。 Apache( root
)会覆盖你的用户凭证,导致系统故障。
ln -s /etc/shadow /home/eviluser/access.log
如果access.log文件不能被用户写入,则可能难以劫持它,但是避免这种可能性更好!
一个可能是使用logrotate来完成这个工作 ,创build一个不存在的文件的链接,但是logrotate只要日志增长就会被覆盖:
ln -s /etc/shadow /home/eviluser/access.log.1
注意 :
符号链接方法只是一个可能的攻击,作为概念certificate。
安全性必须以白名单的心态进行 ,而不是将我们所知道的问题列入黑名单。
没有进程的一般原则写入他们不拥有或信任的目录是一个好的方法。 但在这种情况下,相信Apache代码用O_NOFOLLOW
等打开日志是O_NOFOLLOW
:login到用户的主目录是一个常见的设置。