Исправление ошибки «Каталог ядра в открытом доступе» в 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 / 21540
Таким образом, файл /core/docs/changelog.txt будет доступен независимо от того, что указано в .htaccess, а MODX проверяет доступность именно этого файла.
Выход один. Сначала проверить, что у вас не открывается в браузере файл /core/cache/logs/error.log, а потом просто удалить файл changelog.txt
Тогда ошибка исчезнет.
Вроде все стабильно…
Остается, ошибка о доступности ядра…
Видимо придется переносить папку core, за пределы…
Почитал, что не у всех прошло «гладко»… что то отваливается по дороге((
Не могу подсказать, не приходилось ещё это настраивать. Вроде видел галочку при установке MODX