Файл error.log в public_html, который доступен для просмотра в целом?

В моей папке public_html есть файл error.log, который доступен для просмотра кому угодно, если они просто вводят URL-адрес в своем браузере, например : example.com/error.log

Я запускаю Apache. Мой вопрос: как я могу скрыть или, возможно, переместить этот error.log, чтобы он не был видимым для обычных пользователей?

ErrorDocument 401 default
ErrorDocument 403 default
ErrorDocument 404 default
ErrorDocument 500 default

<IfModule mod_rewrite.c>
RewriteEngine On

#   If you are having problems with the rewrite rules, remove the "#" from the
#   line that begins "RewriteBase" below. You will also have to change the path
#   of the rewrite to reflect the path to your XenForo installation.
#RewriteBase /xenforo

#   This line may be needed to enable WebDAV editing with PHP as a CGI.
#RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^error\.log$ - [F]
RewriteRule ^.*$ - [NC,L]
RewriteRule ^(data/|js/|styles/|install/|favicon\.ico|crossdomain\.xml|robots\.txt) - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

2 голоса | спросил Elite_Dragon1337 4 J000000Saturday15 2015, 15:09:58

2 ответа


1

Я предпочитаю иметь свой журнал ошибок вне общедоступного каталога. Вы можете изменить местоположение журнала ошибок либо в конфигурации своего виртуального хоста, либо через файл htaccess:

php_value error_log  /home/path/error.log

В качестве альтернативы, если вы не хотите менять свое местоположение, вы можете предотвратить доступ, подобный этому

<Files error.log>
Order allow,deny
Deny from all
Satisfy All
</Files>

Я предпочитаю это с помощью mod_rewrite, так как это не очень эффективный способ, и этот метод не будет нарушен, если вы измените порядок своих правил.

ответил MrCarrot 4 J000000Saturday15 2015, 21:53:14
0

Да, этот файл не должен быть общедоступным через HTTP. Предположительно это генерируется вашим веб-хостом, а не вашими собственными скриптами? В этом случае ваш хост должен действительно реализовать необходимое ограничение для блокировки доступа, однако вы можете сделать это самостоятельно в .htaccess:

RewriteRule ^error\.log$ - [F]

Это должно быть размещено над любыми существующими директивами mod_rewrite, следуя директиве RewriteEngine On.

Это приведет к запрету 403, если вы попытаетесь получить доступ к этому файлу через HTTP. Вам нужно будет загрузить его по FTP.

ответил MrWhite 4 J000000Saturday15 2015, 15:22:00

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132