我正在运行 Apache、CentOS 5.5、cPanel。
我想阻止从网络访问 error_log 文件,因为它显示的错误可能会泄露我不想泄露的数据。
我怎样才能做到这一点?
答案1
答案是,您的服务器 error_log 文件未存储在与 Web 服务器内容文件相同的目录树中。例如,您的 Web 服务器通常从某个位置提供文件/var/www
,而将日志文件写入/var/log/httpd
。Web 服务器的配置使其永远无法访问日志文件并使其在 Web 上可用。
编辑:回复评论,日志可能可供 Web 服务器访问并发送给客户端。在查看 httpd.conf 时,这在技术上肯定是可行的。如果您的 DocumentRoot 和 ServerRoot 指向同一个文件系统树,我想您最终可以向客户端提供 error_log。此外,如果您对 ErrorLog 使用绝对路径,则可以将其放在 DocumentRoot 下,并再次使其可供客户端访问。
在任何一种情况下,您都可以使用同一目录中的 .htaccess 文件保护您的 error_log,其内容如下:
<files error_log>
order allow,deny
deny from all
</files>
那么任何请求该文件的客户端都将被拒绝。