Открытый файл debug.log в WordPress: утечка ошибок и паролей
При включении отладки (WP_DEBUG_LOG = true) WordPress записывает все системные ошибки и предупреждения плагинов в файл /wp-content/debug.log.
Поскольку файл находится в общедоступной веб-директории, любой желающий может скачать его и прочитать трассировки стека, запросы к БД и передаваемые токены.
Степень критичности и чем опасна уязвимость
Утечка секретных ключей, SQL-запросов и путей на сервере.
Как наш сканер находит эту уязвимость
Site Check проверяет HTTP-доступность файла /wp-content/debug.log.
Проверка периметра CMS WordPress включает бережный опрос стандартных служебных путей (/wp-json/, /xmlrpc.php, /wp-content/plugins/) для определения векторов утечки версий плагинов, имен авторов и отладочных логов без создания нагрузки на базу данных MySQL.
Как устранить уязвимость (Пошаговое руководство)
Для ликвидации риска выполните следующие действия в конфигурации вашего сервера или приложения:
// В wp-config.php отключите публичную запись логов:
define('WP_DEBUG', false);
define('WP_DEBUG_LOG', false);
define('WP_DEBUG_DISPLAY', false);
- Отключите WP_DEBUG_LOG на продакшне.
- Удалите файл debug.log из каталога /wp-content/.
- Заблокируйте доступ к *.log файлам в Nginx.
Анатомия атаки и реальные последствия для проекта
Включение WP_DEBUG_LOG создает общедоступный файл /wp-content/debug.log, куда записываются ошибки PHP, включая стек вызовов, дампы SQL-запросов и случайные ключи авторизации.
Влияние на соответствие стандартам: Нарушение требований защиты конфиденциальности по 152-ФЗ и GDPR (ст. 32 о недопустимости утечки технических журналов и персональных данных в открытый доступ).
Матрица эшелонированной защиты (Defense-in-Depth)
| Уровень защиты | Техническое действие | Инструмент / Механизм |
|---|---|---|
| Конфигурация wp-config.php | Установка WP_DEBUG_LOG в false или перенос пути лога за пределы public_html | WordPress Core Config |
| Веб-сервер Nginx / Apache | Блокировка доступа ко всем файлам с расширением .log (location ~* \.log$ { deny all; }) | Nginx Deny Directives |
| Операционная система | Удаление существующего файла debug.log и установка прав 600 на каталоги логов | Linux Permissions |
Верификация устранения: команды для быстрой проверки
После внесения изменений в настройки сервера или исходный код приложения проверьте отсутствие уязвимости с помощью терминальных утилит:
curl -I -s https://ваш-домен.com/wp-content/debug.log | grep "HTTP/"
# Ожидается 404
Рекомендации DevSecOps для безопасного развертывания
В wp-config.php установите define("WP_DEBUG_DISPLAY", false); и заблокируйте доступ к *.log файлам в конфигурации Nginx.
- ✓ Отключить протокол xmlrpc.php через конфигурационный файл веб-сервера Nginx
- ✓ Ограничить публичный доступ к эндпоинту /wp-json/wp/v2/users для анонимных клиентов
- ✓ Запретить выполнение PHP-скриптов в директории загрузок /wp-content/uploads/
- ✓ Включить автоматические обновления безопасности ядра WordPress и плагинов
Часто задаваемые вопросы по устранению
Экосистема WordPress часто подвергается массированным автоматизированным сканированиям. Отключение неиспользуемого протокола XML-RPC, сокрытие REST API эндпоинта пользователей и регулярное обновление тем и плагинов снижают риск компрометации сайта на 95%.
Для предотвращения вектора «Открытый файл debug.log в WordPress: утечка ошибок и паролей» зафиксируйте проверочные правила в CI/CD пайплайне и настройте непрерывный мониторинг внешнего периметра через Site Check.