Каталог
coreв MODX содержит важные файлы, необходимые для функционирования системы. Если этот каталог доступен из браузера, злоумышленники могут получить доступ к нему и, следовательно, к ядру MODX. Это может привести к возможным атакам и компрометации сайта.
Если вы внимательнее прочитаете, текст который находится под данной ошибкой, то вы увидите один из способов решения данной проблемы:
Если ваша установка MODX запущена на веб-сервере Apache, вы должны создать файл .htaccess внутри папки ядра …/core. Это также можно сделать, переименовав существующий уже файл-пример ht.access в .htaccess.
Простое исправление
Идем в директорию core и переименовываем в ней файл ht.access в .htaccess.
Делать это лучше всего через файловый менеджер хостинга или через 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>
Снова очистите кэш и проверьте пропала ошибка или нет, если нет вероятнее всего:
- У вас Shared-хостинг который использует связку NGINX и Apache. В этом случае вся статика (картинки и текстовые файлы) обрабатывается NGINX’ом, а php-файлы обрабатывает Apache. Следовательно, файл /core/docs/changelog.txt будет доступен независимо от того, что указано в .htaccess, а MODX проверяет доступность именно этого файла.
Выход в данном случае следующий. Сначала проверить, что у вас не открывается в браузере файл /core/cache/logs/error.log, а потом просто удалить файл changelog.txt
Тогда ошибка исчезнет. - У вас NGINX хостинг и если у вас имеется возможность редактировать конфигурационный файл NGINX, то можно добавить правило:
location ~* ^/core/ { deny all; }
Второй метод исправления ошибки «каталог ядра в открытом доступе»
Второй метод более радикальный и подразумевает под собой перенос каталога core за пределы публичной части вашего сайта (обычно это директория public_html). Т.е.: /core вместо /public_html/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-сайт от потенциальных угроз. Если у вас возникнут дополнительные вопросы, не стесняйтесь обращаться!
