Каталог ядра в открытом доступе modx revo как исправить

  • Главная
  • »

  • Блог вебмастера
  • »

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

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

Соглашение об обработке персональных данных

Данное соглашение об обработке персональных данных разработано в соответствии с законодательством Российской Федерации.

Все лица заполнившие сведения составляющие персональные данные на данном сайте, а также разместившие иную информацию обозначенными действиями подтверждают свое согласие на обработку персональных данных

Под персональными данными Гражданина понимается нижеуказанная анкетная и биографическая информация:

Общая информация (Ф.И.О); Email; номер телефона; Соискатели направляют свои персональные данные оператору в целях предоставления последним услуги по приему заявок (записи) на консультацию по разработке сайта.

Гражданин, принимая настоящее Соглашение, выражают свою заинтересованность и полное согласие, что обработка их персональных данных может включать в себя следующие действия: сбор, систематизацию, накопление, хранение, уточнение (обновление, изменение), использование

Гражданин гарантирует: информация, им предоставленная, является полной, точной и достоверной; при предоставлении информации не нарушается действующее законодательство Российской Федерации, законные права и интересы третьих лиц; вся предоставленная информация заполнена Гражданина в отношении себя лично.

Если вы только что установили Modx Revolution, то в процессе установки вам надо было переименовать файлы ht.access и /core/ht.access в .htaccess.

Вы все сделали все по инструкции, но надоедливое предупреждение «Каталог ядра в открытом доступе» не удалилось из главной страницы admin панели Modx.

Это предупреждение ссылается на доступность каталога ядра — папки /core для общественности и не рекомендуется из соображений безопасности.

Почему при правильной настройки не убралось предупреждение?

Частой причиной этому является NGINX сервер — по умолчанию предоставляет доступы к .txt 

Ршение:

Нужно удалить или переименовать файл: /core/docs/changelog.txt

Если у вас сервер Apache нужно добавить правило в файл .htaccess:

RewriteCond %{REQUEST_URI} ^/core/*
RewriteRule ^(.*)$ [R=404]

Способ:

Изменение корневой директории, другими словами перенос папки /core выше уровнем, например за пределы папки /public_html.

В панеле управления моего сайта сообщение:
«Каталог ядра в открытом доступе. MODX обнаружил, что ваш основной каталог (частично) доступен для общественности. Это не рекомендуется из соображений безопасности. Если ваша установка MODX выполняется на веб-сервер Apache, вам следует по крайней мере настроить файл .htaccess внутри каталога с файлами ядра: /home/k/kolibriya/modx/public_html/core/. Это можно легко сделать, переименовав уже имеющийся там файл ht.access в .htaccess.»

У меня это все сделано. А сообщение все равно не исчезает. Кроме того, написано: «Если вы настроили всё правильно, то при открытии списка изменений страница должна вернуть вам ошибку 403 (доступ запрещен), а лучше ошибку 404 (страница не найдена).»

А у меня там код на всю страницу. Что это значит? Кто-нибудь подсказать может?

Решение проблемы

Всем привет. Коротенькая статья, посвященная решению проблемы «Каталог ядра в открытом доступе», которая появляется в админке Modx Revolution в версии 2.4.0. Связана эта ошибка с безопасностью, а с ней лучше не шутить. Поэтому эту проблему нужно решить.

Решение проблемы​

1. Заходим в админку Modx Revo и видим такое

2. Открываем Файл менеджер или воспользуемся диспетчером файлов самого Modx Revo

3. Идем в папку core/

5. Открываем этот файл и заменяем содержимое на

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

6. Очищаем кэш и смотрим страницу приветствия в админке. Ошибки не обнаружено.

Чем грозит, если оставить без внимания эту ошибку

Насколько это опасно для безопасности я точно не знаю, но даже ради нее (безопасности) эту ошибку надо исправить, а не просто выключить виджет, который отображается ошибку «Каталог ядра в открытом доступе». Но есть еще, по крайней мере, один нюанс, ради которого нужно исправить эту ошибку. Вы не сможете поставить «Использовать дружественные URL» в разделе системных настроек «Дружественные URL».

У вас просто будет зависать админка при включении этого параметра. Так что не ленитесь и устраните проблему, тем более что это делается в несколько кликов. На этом все, если что-то не работает пишите в комментариях, попробуем разобраться вместе.

P.S. еще столкнулся с проблемой, пока писал эту статью. Если вы заметили у меня отличается по дизайну 4-ый пункт. Это не текст, а картинка. Оказывается редактор и сама админка очень чувствительны к названию файла, которые указаны в 4-ом пункте. Если в статье имеется название данного файла, то она просто не сохраняется. Минут 20 не мог понять из-за чего у меня не сохраняется статья.

Не то, что искали? Воспользуйтесь поиском

На чтение 8 мин Просмотров 5.5к. Опубликовано 29.06.2020
Обновлено 30.06.2020

Содержание

  1. Критические уязвимости modx
  2. Защита MODX — руководство по закалке
  3. Защита ядра и служебных каталогов
  4. robots.txt
  5. Скрытие конфигурационных файлов сайта и версии php
  6. Защита таблиц базы данных
  7. Базовая защита от определения CMS
  8. Дополнительные примочки по защите
  9. Каталог ядра в открытом доступе — решение проблемы
  10. Полное скрытие информации о том что сайт работает на MODX
  11. Переделываем шаблоны
  12. Изменяем путь к уменьшенным изображениям
  13. Возможные проблемы с miniShop2
  14. Прочие проблемы

В прошлом уроке мы произвели расширенную установку MODX, тем самым закрыли часть уязвимостей. После входа в админку, вы наверное заметили ошибку: «Каталог ядра в открытом доступе» и жирным написано: Это не рекомендуется из соображений безопасности. А ниже ссылка на руководство по закалке на английском языке.  У меня на блоге есть подобное руководство на русском — которое относится к любым сайтам и не только.

Сегодня мы поговорим о уязвимостях MODX, как защитится от взлома и избавится от ошибки «Каталог ядра в открытом доступе«.

Критические уязвимости modx

Ноябрь 2016 — обнаружена первая критической уязвимости, она основана на SQL иньекциях. Подвержены сайты — которые используют стандартный префикс modx — я так понимаю она еще актуальна.

Июль 2018 — найдены еще две критические уязвимости безопасности. Первая позволяет злоумышленникам удалять на сайте папки и файлы, вторая — загружать на сервер вредоносный код и и выполнять его. — Профикшено в MODX 2.6.5 и выше. Похожая уязвимость так же была найдена в дополнении Gallery версии 1.7.0 и ниже — обновите до 1.7.1.

Обновление до версии 2.6.5 с исправлением уязвимостей выпустили на следующий день. Дополнение Gallery было обновлено до версии 1.7.1.

Апрель 2019 — обнаружен exploit для сайтов, в которых где осталась директория setup. Данная «дыра» позволяет получить полный доступ к сайту, а если хостиг не айс, то и к веб-серверу. — Уязвимость на данный момент не устранена, так что проверьте свой сайт на нее: введите в адресную строку браузера адрес вашего домена + /setup (как в уроке по установке) — если установщик запустится, то зайдите на хостинг и удалите папку setup.

Защита MODX — руководство по закалке

Внимание! Если у вас боевой сайт — перед началом, сделайте его полный бэкап!

Защита ядра и служебных каталогов

Защитить ядро можно несколькими способами: вынести ядро (папка Core) из публичной папки. Далеко не на всех хостингах это можно сделать, либо переименовать каталог core.

Защитить служебные каталоги (connectors и manager) можно их переименованием их.

Служебные каталоги мы уже защитили в прошлом уроке, осталось переименовать ядро, давайте сделаем это сейчас, для этого идем в файловый менеджер и переименовываем core в Ejdf20jkfg20ff_core (я добавил такой же префикс, который указывал когда при установке переименовывал служебные каталоги — не используйте его в своих проектах — придумайте или сгенерите свой), в конечном итоге получаем следующее.

И наш сайт перестал работать! Исправим это, для этого нам нужно поправить пути в файлах конфирураций:

/config.core.phpmanager/config.core.phpconnectors/config.core.php

В файле core/config.core.php указываем все новые пути.

После чего удаляем папку с кэшем core/cache и проверяем работоспосбность сайта. Если сайт не работает, значит где-то не поправили путь.

По поводу каталога assets, его тоже можно спрятать (выше приведенным способом). Но есть много но, и об этом будет в конце статьи!

robots.txt

Глупо переименовывать системные папки, и затем писать в robots.txt Disallow: Ejdf20jkfg20ff_conectors, но спрятать их от роботов нужно. Выход: удаляем из робота все старые директивы (которые мы переименовали) и за место них пишем 1 сторку: Disallow: Ejdf20jkfg20* (указанный вам префикс без знака _ и нескольких последних символов до него) .

Таким образом мы скрываем от робота все что находится в переименованных каталогах с префиксом Ejdf20jkfg20ff_.

Здесь можно проверить правильность своего robots.txt — https://webmaster.yandex.ru/tools/robotstxt/

Скрытие конфигурационных файлов сайта и версии php

Открываем .htaccess и добавляем в него следующие строчки.

RewriteCond %{REQUEST_URI} ^/config.core.php*
RewriteRule ^(.*)$ [R=404]
php_flag display_errors off

Защита таблиц базы данных

Если во время установки MODX, в настройках БД, вы не изменили префикс таблиц, который предлагается по умолчанию «modx_». То меняем его на сложный, для этого идем в phpMyAdmin (управление базами данных в админке хостинга):

  • в левой части phpMyAdmin кликаете на название нужной базы;
  • в основной области появится список всех таблиц, внизу которого надо отметить чекбокс «Отметить все»;
  • справа от чекбокса комбобокс «С отмеченными:» в котором надо выбрать «Заменить префикс таблицы»;
  • в новом окне указать старый префикс и новый префикс, на который надо заменить старый.

после этого идем в core/config.core.php , меняем в нем префикс и удаляем папку с кэшем.

Базовая защита от определения CMS

Для тех кто устанавливал MODX не по моему мануалу, проверьте отключение «X-Powered-By», чтобы сайт не «палился», отправляя в заголовках информацию о том, что сайт сделан на MODX.

Идем в системные настройки, в поиск по ключу вбиваем send_poweredby_header — ставим нет.

Дополнительные примочки по защите

Кроме описанных выше приёмов, можно применить еще пару небольших хитростей.

Многие «попсовые» CMS добавляют свои мета теги с указанием названия и версии CMS, например джумла:

<meta name=»generator» content=»Joomla x.x.x» />

можно смело добавить такой код, чтобы увести возможных злоумышленников по ложному следу.

В добавок к этому, можно создать фэйковую стандартную страницу входа в админку указанной версии имитируемой CMS.

Большинство автоопределялок будут интерпретировать наш движок как Joomla, а если хулиганы захотят залезть в админку, то будут долго и нудно пытаться подобрать отмычки к нерабочему замку.

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

Если после всего выше перечисленного у вас все еще весит в админке данное уведомление (а оно в 90% еще весит). Можно смело избавиться от данной ошибки. Для этого переименуйте файл ht.access в .htaccess, который лежит в каталоге core. После этого идем в каталог «core/docs» и удаляем из него файл «changelog.txt».

Если ошибка не ушла, очистите кэш.

Полное скрытие информации о том что сайт работает на MODX

После проделанного выше большинство сервисов автоматического определения CMS, не поймут что сайт работает на MODX, но практически любой знающий модх человек, с большой долей вероятности определит ее, по подключенным скриптами пакетов из папки assets, и как я писал выше ее тоже можно скрыть, но влечет за собой кучу проблем.

  1. Если сайт боевой, то в данном каталоге скорее всего лежат все картинки, скрипты, стили — следовательно к ним изменится путь — это пародист 404 ошибки (файл не найден) — в плюс со стороны поисковых систем думаю не с играет.
  2. Если забить на поисковики, либо предположить что у вас свеже установленный сайт. То все равно это пародит кучу доп проблем. Например: нам нужно будет избавляться от всего что выводится в код из данного каталога: скриптов, которые подключаю пакеты, картинок которые вы режете при помощи pThumb (или подобных пакетов) и т.д.

Для тех кому трудности не почем, и кто решил все таки переименовать каталог assets, читаем далее, пути решения выше упомянутых проблем. Уточню! Актуально в первую очередь для тех у кого сайт с контентом!

Переделываем шаблоны

Если у вас все файлы хранились в assets/ то дизайн у вас весь поломался, так как такого каталога больше нет. Рекомендую в корне сайта создать каталог template (или просто в корень) и перенести все файлы шаблона (скрипты, стили и т.д. в него), далее сменить все пути в шаблонах, сделать это можно быстро при помощи пакета ModxDevTools (функция поиск и замена — работает для обычных шаблонов и чанков — в статических не ищет, там правите руками).

Изменяем путь к уменьшенным изображениям

При использовании pThumb, phpthumbof или phpthumbon, мы имеем путь к изображению вида /assets/components/pthumb/cache/7a...73.jpg. Так как папку assets мы переименовали. Но умный скрипт или зоркий глаз может увидеть components/pthumb/cache и все понять.

Чтобы поменять этот путь заходим в системные настройки и меняем значения в полях Images Base Directory (pthumb.ptcache_images_basedir) и pThumb Cache Location (pthumb.ptcache_location), на новые значения. Также рекомендую включить: Используйте pThumb Cache (pthumb.use_ptcache) — Да

Настройка pthumb

После чего удаляем папки с кэшированными картинками из /assets/components/phpthumbof/cache/

Возможные проблемы с miniShop2

Если пропали картинки товаров miniShop2 — перейдите в Медиа -> Источники файлов -> MS2 Images, и отредактируйте настройки basePath и baseUrl. Укажите новый путь к папке assets или к папке с изображениями вне assets.

Прочие проблемы

Это далеко не все, открываем код и ищем в нем assets и смотрим что еще выводится, например js скрипты — их тоже нужно перенести! В будущем расширю данную статью решением прочих проблем. Если столкнулись с ними — пишите в комментариях, постараюсь вам помочь.

Понравилась статья? Поделить с друзьями:
  • Как образованы данные слова составьте 2 3 предложения с отрицательными местоимениями некого никакой
  • Как найти драйвер для вай фай адаптера
  • Как найти площадь сечения призмы ромба
  • Как найти свое щастье
  • Блок питания уходит в защиту под нагрузкой как исправить