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

исправление ошибки Каталог ядра в открытом доступе" MODX 2.5

Всем привет! Недавно я сталкнулся с проблемой, а именно у меня возникала ошибка "Каталог ядра в открытом доступе" в MODX 2.5. Разработчики CMF добавили эту проверку вроде бы с версии 2.4, она связанна с безопасностью сайта.

Дело в том, что если не исправить данную ошибку, то злоумышленник сможет украть у Вас данные к БД, ну или узнать версию MODX. Так что лучше исправить эту проблему.

Начнем с простого

Для начала, давайте начнем с самых простых вещей, которые указаны в самой ошибки. Первым делом необходимо переименовать уже имеющийся там файл в папке /core  "ht.access" в ".htaccess" и очистить кэш.

Начиная с версии 2.5, содержимое ".htaccess" выглядит так:

# 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 *

Не помогло? Вот и мне не помогло :D, когда я пытался решить эту проблему с переносом сайта на другой хостинг.

Дело в том, что большинство хостинг компаний, используют следующую схему работы, при которой запросы к статичным файлам (в частности txt) обрабатываются с помощью Nginx, а остальные запросы передаются Apache.

Поэтому файл ".htaccess" не может использоваться для отключения доступа к статическим файлам, так как он обрабатывается только на уровне Apache. А MODX как раз-таки и проверяет файл (/core/docs/changelog.txt)

UPD. На некоторых сайтах использую

Deny from all
AllowOverride None

Можно ещё проще, нужно проверить, что не открывается в браузере файл /core/cache/logs/error.log, а потом просто удалить или переименовать файл /core/docs/changelog.txt

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

Что же делать? Как решить проблему "каталог ядра в открытом доступе"? Всё очень просто, для этого нужно перенести /core за пределы публичной части сайта (public_html).

  • Переносим папку core за пределы public_html
  • Дальше необходимо в /core/config/config.inc.php изменить путь к папке /core в переменных $modx_core_path, $modx_processors_path

Также меняем путь к папке /core в файлах:

  • /config.core.php 
  • /connectors/config.core.php
  • /manager/config.core.php

И вручную удаляем содержимое папки /core/cacheСаму папку cache не удаляем! Вот и всё, мы исправили проблему "каталог ядра в открытом доступе" в MODX

Если у Вас возникли вопросы, задавайте через форму ниже.

31.07.2016 / 20810

No avatar

Комментарии (26)

  1. РОМАН 08 октября 2020, 14:02 # 0
    На Shared-хостингах распространена практика использования связки NGINX и Apache. В этом случае вся статика (картинки и текстовые файлы) обрабатывается NGINX'ом, а php-файлы обрабатывает Apache.

    Таким образом, файл /core/docs/changelog.txt будет доступен независимо от того, что указано в .htaccess, а MODX проверяет доступность именно этого файла.

    Выход один. Сначала проверить, что у вас не открывается в браузере файл /core/cache/logs/error.log, а потом просто удалить файл changelog.txt

    Тогда ошибка исчезнет.
    1. Игорь 30 ноября 2020, 09:57 # 0
      Все верно, спасибо за комментарий
    2. Иван 07 мая 2020, 20:05 # 0
      Спасибо большое! Получилось)
      1. Евгений 19 декабря 2019, 16:31 # 0
        Спасибо, помогли, все работает!
        1. Алексей 16 февраля 2019, 00:12 # 0
          Спасибо! Получилось…
          Вроде все стабильно…
          1. Игорь 16 февраля 2019, 12:56 # 0
            Пожалуйста
          2. Максим Мартынюк 08 декабря 2018, 02:13 # 0
            РЕБЯТА!!! ПОМОГИТЕ!!! Перенёс папку core за пределы public_html, затем воспользовался UpgradeMODX нажал обновить и ПОПАЛ!!! Пытаюсь зайти в manager — Site temporarily unavailable! Вернул на место папку core, прописал обратно пути, а всё равно всё слетело на сайте, в админку не пускает… ЧТО ДЕЛАТЬ ПОДСКАЖИТЕ ПОЖАЛУЙСТА!!! ОЧЕНЬ СРОЧНО НУЖНО!!! ПОПАДАЮ ПРОСТО ПИПЕЦ!!!
            1. Рустам 18 июня 2019, 21:40 # 0
              Жжешь :))))
            2. Роман 08 сентября 2018, 11:50 # 0
              Добрый день! Такой вопрос: у меня в папке core, лежали папки с шаблонами и после переноса ядра за пределы public_html не могу в админке открыть мои шаблоны, то есть в закладке «Файлы» core теперь нет и соответственно нет возможности в её открыть и попасть к моим директориям. Где можно поправить пути к папке core?
              1. ааааааа 08 сентября 2018, 11:44 # 0
                вообще админка перестала работать
                1. Тимур 28 июля 2018, 15:14 # 0
                  Благодарю
                  1. Гость 09 мая 2018, 21:23 # 0
                    Спасибище!!!
                    1. Анна 14 марта 2018, 12:14 # 0
                      Спасибо за способ) ошибку устранила, все работает отлично)
                      1. Игорь 14 марта 2018, 15:43 # 0
                        Пожалуйста, очень рад, что статья Вам помогла!
                      2. Дмитрий 01 марта 2018, 15:04 # 0
                        Что мешает добавить в файле htaccess в директории core:
                        IndexIgnore */*
                        <Files *.*>
                        Order Deny,Allow
                        Deny from all
                        1. Алексей 15 февраля 2019, 23:49 # 0
                          Не помогает эта запись в файле htaccess в директории core…

                          Остается, ошибка о доступности ядра…

                          Видимо придется переносить папку core, за пределы…
                          Почитал, что не у всех прошло «гладко»… что то отваливается по дороге((
                          1. Алан 16 апреля 2019, 11:46 # 0
                            Мне помогло. Не забудьте очистить кеш!
                          2. Павел 22 мая 2017, 13:08 # 0
                            Прошу помочь! После переноса папки core за пределы public_html пока нашел два слетевших компонента это shopkeeper и hitspage проблема в путях к файлам в параметрах снипнетов
                            core/components/hitspage/elements/plugins/hitspage.plugin.php
                            core/components/shopkeeper3/elements/chunks/ru/
                            Вопрос какой путь должен быть? Или занести эти папки в зону public_html и прописать путь, не будет ли потом проблем с обновлениями? Спасибо.
                            1. Игорь 22 мая 2017, 13:13 # 0
                              Вы везде поправили пути к папке core? Пробовали переустановить эти компоненты?
                              1. Павел 22 мая 2017, 13:18 # 0
                                Вроде везде в 4 файлах config.core.php переустанавливать не пробовал, с hitspage думаю проблем не будет, а вот с шопкипером сложнее, последнего вернул в папку public_html работает нормально. Попробую обновить.
                                1. Павел 22 мая 2017, 14:10 # 0
                                  Переустановил. Работает но папка /public_html/core/components вернулась с этими компонентами. Насколько критично? может где то настройках modx мне нужно поправить что то?
                                2. Павел 21 мая 2017, 21:29 # 0
                                  Спасибо. Все четко ошибка исчезла :) Подскажите вариант что бы не определялась CMS допустим на pr-cy
                                  1. Игорь 21 мая 2017, 21:32 # 0
                                    Пожалуйста.
                                    Не могу подсказать, не приходилось ещё это настраивать. Вроде видел галочку при установке MODX
                                    1. Павел 21 мая 2017, 22:45 # 0
                                      Нашел проблему после переноса папки core сайт работает нормально а вот shopkeeper 3 «лег» не знаете где что нужно поправлять? Пока вернул core на место все работает в прежнем режиме. А калькулятор перестал работать на странице express-pol.ru/knauf3.htm подозреваю что дело в переходе на php-7 или после обновления.
                                    2. artem 09 декабря 2016, 02:59 # 0
                                      отлично. рабочий способ, ошибку устранил эту. хотел ещё поменять адрес входа в админку, но ничего не вышло. вроде все пути поменял, но бесполезно.
                                      1. Игорь 09 декабря 2016, 11:22 # 0
                                        После того как в кофиге сменили путь, в phpMyAdmin находите табличку от своего MODX и в таблице modx_workspaces меняете поле path на
                                        /modxfolder/directory/admin/
                                        На всякий случай, удалите содержимое папки /core/cache.