我怎样才能让 error_log 无法被网络访问?

我怎样才能让 error_log 无法被网络访问?

我正在运行 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>

那么任何请求该文件的客户端都将被拒绝。

相关内容