Ошибка безопасности MODX: «Каталог ядра в открытом доступе» — исправление ошибки

Каталог ядра в открытом доступе MODX Revo
Сразу после установки MODX (как v2, так v3), зайдя в админку вы с большой вероятностью увидите ошибку связанную с безопасностью сайта: «Каталог ядра в открытом доступе». Разберем как ее исправить

Каталог core в MODX содержит важные файлы, необходимые для функционирования системы. Если этот каталог доступен из браузера, злоумышленники могут получить доступ к нему и, следовательно, к ядру MODX. Это может привести к возможным атакам и компрометации сайта.

Если вы внимательнее прочитаете, текст который находится под данной ошибкой, то вы увидите один из способов решения данной проблемы:

Если ваша установка MODX запущена на веб-сервере Apache, вы должны создать файл .htaccess внутри папки ядра …/core. Это также можно сделать, переименовав существующий уже файл-пример ht.access в .htaccess.

Простое исправление

Идем в директорию core и переименовываем в ней файл ht.access в .htaccess.

переименовываем ht.access

Делать это лучше всего через файловый менеджер хостинга или через FTP клиент, например FileZilla.

После этого удаляем все из папки core/cache, далее возвращаемся в админку и очищаем кэш браузера CTRL+F5. Если ошибка после этого не пропала (обычно не пропадает), то:

Попробуйте заменить содержимое файла .htaccess (который лежит в core/), с:

# deny access to _all_ files in the core, including changelog.txt and error.log
# original borrowed from owncloud

# line below if for Apache 2.4
<ifModule mod_authz_core.c>
    Require all denied
</ifModule>

# line below if for Apache 2.2
<ifModule !mod_authz_core.c>
    deny from all
    Satisfy All
</ifModule>

# section for Apache 2.2 and 2.4
IndexIgnore *

на

IndexIgnore */* 
<Files *.*>
Order Deny,Allow
Deny from all
</Files>

Снова очистите кэш и проверьте пропала ошибка или нет, если нет вероятнее всего:

  1. У вас Shared-хостинг который использует связку NGINX и Apache. В этом случае вся статика (картинки и текстовые файлы) обрабатывается NGINX’ом, а php-файлы обрабатывает Apache. Следовательно, файл /core/docs/changelog.txt будет доступен независимо от того, что указано в .htaccess, а MODX проверяет доступность именно этого файла.
    Выход в данном случае следующий. Сначала проверить, что у вас не открывается в браузере файл /core/cache/logs/error.log, а потом просто удалить файл changelog.txt
    Тогда ошибка исчезнет.
  2. У вас NGINX хостинг и если у вас имеется возможность редактировать конфигурационный файл NGINX, то можно добавить правило:
    location ~* ^/core/ {
            deny            all;
    }

Второй метод исправления ошибки «каталог ядра в открытом доступе»

Второй метод более радикальный и подразумевает под собой перенос каталога core за пределы публичной части вашего сайта (обычно это директория public_html).  Т.е.: /core вместо /public_html/core.
Вынесение core
Это поможет обеспечить безопасность, так как злоумышленники не смогут получить доступ к ядру MODX через браузер.

Пред началом, обязательно сделай бэкап сайта и базы данных!

Когда папка перенесена, нужно отредактировать конфигурационные файлы:

  • /config.core.php (в корне сайта)
  • /connectors/config.core.php
  • /manager/config.core.php
  • core/config/config.inc.php (переменная $modx_core_path и $modx_processors_path)

Далее удаляем все содержимое из папки /core/cache

Саму папку cache не удаляйте! После этого вы сможете обновляться только руками, см. Обновление закаленных MODX сайтов.

Заключение

Обеспечение безопасности вашего сайта — это важный аспект. Следуйте указанным выше шагам, чтобы устранить ошибку “Каталог ядра в открытом доступе” и защитить свой MODX-сайт от потенциальных угроз. Если у вас возникнут дополнительные вопросы, не стесняйтесь обращаться!

Поделиться с друзьями
Алексей

Веб-дизайнер и SEO оптимизатор. Занимаюсь созданием сайтов с 2010 года и их продвижение с 2012 года!

Оцените автора
( Пока оценок нет )
Web-Revenue.ru
Добавить комментарий