Исправление ошибки «Каталог ядра в открытом доступе» в 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)

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

Что же делать? Как решить проблему "каталог ядра в открытом доступе"? Всё очень просто, для этого нужно перенести /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 / 3575

No avatar

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

  1. Павел 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.