Узнать версию modx. Защита служебных каталогов. Легкое управление навигацией

Перенос сайта, разработанного на CMF ModX Revo c локального сервера типа Денвер на хостинг очень отличается от переноса обычного сайта. Связано это с особенностями самой системы ModX Revo. В этой статье мы рассмотрим один из вариантов переноса данной системы на хостинг в интернете.

Для переноса сайта на MODx Revolution на другой хостинг выполняем следующие шаги:

1. Копируем все файлы сайта с хостинга на локальный компьютер предварительно разлогинившись .

2. Делаем дамп базы данных MySQL

3. Заходим на локальном компьютере в папку core/cache и удаляем оттуда все кроме файла .gitignore

5. Так же в корень сайта заливаем папку setup из дистрибутива ModX той же версии на которой сделан(или до которой обновлен) ваш сайт.

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

Итак для того чтобы узнать версию пакета ModX, которая использовалась для создания переносимого в данный момент нами сайта, нам не обязательно лезть в базу данных MySQL, ведь у нас есть ее дамп. У меня он в формате .sql

Открываем данный файл в любом текстовом редакторе.
Запускаем поиск и ищем в нем слово settings_version.
В результатах поиска получаем строку следующего вида:

("settings_version", "2.2.1-pl ", "textfield", "core", "system", "2012-04-09 07:20:10"),

жирным выделена версия пакета.
Все, теперь идем на оф.сайт ModX и качаем нужную нам версию.
Все версии для скачивания берем тут: modx.com/download/previous-releases/

6. Правим в файле /core/config/config.inc.php следующие строки:

$modx_core_path= "/path/to/modx_doc_root/core/"; $modx_processors_path= "/path/to/modx_doc_root/core/model/modx/processors/"; $modx_connectors_path= "/path/to/modx_doc_root/connectors/"; $modx_manager_path= "/path/to/modx_doc_root/manager/"; $modx_base_path= "/path/to/modx_doc_root/"; $modx_assets_path= "/path/to/modx_doc_root/assets/"; /* HOST (used for command-line PHP stuff) */ $http_host="yoursite.com";

7. Правим в файлах config.core.php и manager/config.core.php строку

Define("MODX_CORE_PATH", "/path/to/modx_doc_root/core/");

8. Заливаем базу данных на новый хостинг;

9. Даем рекурсивно доступы 777 на папки assets , core и setup ;

11. И следуем шагам установщика, который практически все сделает за нас. (рис. 1)

12. На данном шаге если выбран вариант, отличный от того что указан на рисунке, исправляет это выбрав нужный вариант. (рис. 2)

13. Благополучно проходим проверку на соответствие системы требованиям ModX. (рис. 3)

14. На этом шаге можем просмотреть подробные отчеты об установке системы на сервер и нажимаем "далее". (рис. 4)

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

16. Если все прошло нормально то после нажатия кнопки "Войти" увидим панель входа в админку ModX.

Версии различаются местоположением файлов и данных в базе, поэтому в данной статье мы рассмотрим сброс пароля для обеих версий.

Узнать имя базы, с которой работает сайт, и префикс таблиц можно в конфигурационном файле сайта.
Для Modx Evolution 1.*.* он находится по следующему пути от корня сайта

./manager/includes/config.inc.php

А для версии Modx Revo 2.*.* его следует искать по следующему пути от корня сайта

./core/config/config.inc.php

Корень сайта можно узнать в разделе

На скриншоте можно наблюдать, что в нашем случае корнем сайта является modx/public_html , и, соответственно, файл будет находиться по следующим путям для версии Modx Evolution 1.*.* и Modx Revolution 2.*.* соответсвенно

Modx/public_html/manager/includes/config.inc.php

Modx/public_html/core/config/config.inc.php

Теперь нам нужно открыть нужный файл любым удобным способом, например, через Файловый менеджер , и найти в нём следующие строки:

$dbase = "passreset_modx1";
$table_prefix = "modx_";

Значения в этих строках означают имя базы, с которой работает сайт, passreset_modx1 и префикс таблиц базы - modx_ .
В вашем случае название базы данных будет отличаться, а префикс таблиц может быть таким же.

После того, как мы узнали имя базы, нам нужно попасть в саму базу данных. Сделать это можно через phpMyAdmin в разделе . Находим нужную базу данных в списке и напротив неё нажимаем иконку PMA . Возможно, сразу phpMyAdmin не откроется, так как Ваш браузер блокирует всплывающие окна, поэтому разрешите использование всплывающих окон.

Modx Evolution 1.*.*

Префикс_manager_users modx_manager_users

modx_manager_users admin

password

Значение Функция выбираем из списка MD5 .

Вперёд

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

Modx Revo 2.*.*

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

Перед нами появилась информация из таблицы modx_users , в которой указана информация о всех зарегистрированных пользователях вашего сайта. Вам нужно найти строку с логином Вашей учётной записи, в нашем случае это учётная запись admin . Теперь откроем эту строку для редактирования, нажав на иконку с карандашом в левой части строки

Теперь приступим к самой смене пароля. Для этого находим строку с названием password

И поменяем в ней 2 строки: в поле Значение удаляем все текущие символы и вводим туда желаемый пароль, например BegetNewPass, а в поле Функция выбираем из списка MD5 .

В итоге поля должны выглядеть следующим образом

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

После всех выполненных действий пароль успешно изменился. Для проверки перейдите на страницу авторизации в админ.панель Вашего сайта и введите логин Вашего аккаута и новый пароль.

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

Люди думают, что безопасность - это существительное, что-то, что можно купить. На самом же деле безопасность - это абстрактное понятие, как счастье.
James Gosling

Разработчики MODX Revolution постоянно ведут работу над улучшением безопасности создаваемой ими системы. Тем не менее, со стороны создателя сайта тоже должны быть приложены определённые усилия, чтобы безопасность сайта оставалась на должном уровне.

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

1 Перемещение ядра

2 Изменение адреса панели

Обычно административная панель сайта на MODX находится по адресу https://site.ru/manager. Немного замести следы пребывания MODX помогает перемещение админки, а сделать это проще простого - достаточно переименовать сам каталог (например, из manager в admin или abrakadabra), а затем указать новый путь в одном файле конфигурации:

  • core/config/config.inc.php

3 Обновляйте дополнения

Даже если функционал текущих версий дополнений полностью устраивает, это ещё не значит, что нет причин для обновлений. Как известно, новые версии ПО несут с собой не только новые возможности, но и различные исправления ошибок (хотя новые ошибки тоже обычно идут в комплекте).

4 Обновляйте MODX

Как я уже писал выше, разработчики MODX постоянно работают над обеспечением безопасности MODX, поэтому рекомендуется периодически обновлять MODX до последнего стабильного выпуска.

5 Разделяй и властвуй

Если над сайтом работает несколько человек, то крайне рекомендуется настроить для каждого пользователя минимально необходимые права доступа. Ведь нет никакого смысла в том, чтобы контент-менеджер имел доступ к настройкам системы или сниппетам с чанками.

Даже если у контент-менеджера не зачешутся ручки, чтобы поковыряться в работе системы, может объявиться злоумышленник, который, воспользовавшись некомпетентностью пользователя, сможет перехватить доступ в админку. Это особенно актуально, если работа с сайтом ведётся через незащищённое соединение, вследствие чего логин и пароль передаётся по сети в открытом виде. Для уменьшения риска перехвата пароля рекомендуется приобрести и установить SSL-сертификат, тогда все запросы будут передаваться в зашифрованном виде.

Немало статей написано и переписано о том, как защитить MODX, но в этой статье я опишу не только стандартные рекомендации по защите инстанса MODX Revolution (далее я буду писать просто MODX, потому что ветка MODX Evolution - это тупиковая ветвь «эволюции» являющаяся рудиментом не заслуживающим внимания современных разработчиков), но и некоторые новые методы «заметания следов».

Итак, начнем самого важного.

Существует две разновидности установщика MODX - это Traditional и Advanced.
Какая между ними разница?

Traditional - это простой вариант установки на любой хостинг соответствующий рекомендациям для установки MODX , где ядро устанавливается прямо в корень публичной папки сайта. Незатейливые «сайтоклёпы» ставят версию Tradtiional, не закрывают директории от просмотра и в итоге всё содержимое сайта, в т.ч. служебных директорий, попадает в индекс поисковиков . Не станем фантазировать на тему, к чему это может привести. Здесь всё понятно.

Advanced - версия для парней, которые, как минимум «смотрели кино про нидзей». Этот вид установщика позволяет разместить ядро MODX вне публичной папки, спрятав его от посягательств злоумышленников. Для серьезных проектов это рекомендуемый вариант, но лично я его использую всегда.

Защита ядра

Защитить ядро можно двумя способами:

1. На нормальном хостинге - вынести ядро из публичной папки и можно его не переименовывать и не настраивать.htaccess лежащий в этом каталоге (на VDS не стоит забывать о настройке прав доступа пользователя, от которого запускается Apache).

2. На дурацком хостинге - переименовать каталог ядра воспользовавшись, например, генератором паролей (без спецсимволов, конечно же - только буквы и цифры) И во время установки указать физический путь к каталогу ядра. Именно по этому лучше использовать Advanced установщик.

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

Не секрет, что кроме каталога ядра, другие служебные каталоги должны остаться в публичной папке сервера.

Что нам сделать для защиты от попыток взлома через коннекторы и попыток проникнуть в админку? Стандартные наименования каталога коннекторов /connectors, а для админки - /manager, и это палево.

Во время установки вам будет предложено изменить эти названия. В этом нам поможет, правильно, - генератор паролей и, как ни странно, в случае с админкой собственная голова. Название каталога админки лучше сделать человекопонятным, но не /admin, конечно же:)

Возможно, вы захотите спросить: Почему мы не прячем /assets?
И, возможно, я отвечу: А зачем? Все картинки и скрипты лежат в /assets, а в коде страницы есть все ссылки на картинки и скрипты:)

Защита таблиц БД

Во время установки, в настройках БД, по умолчанию предлагается префикс таблиц «modx_». Так дело не пойдет . И вновь нам поможет генератор паролей (Помнишь, товарищ? Только из букв и цифр!). Меняем стандартный префикс на кракозябры, в конце которых ставим нижнее подчеркивание. Например, «IU1xbp4_».

Защита от определения CMS

Сервисы автоматического определения CMS сайтов, конечно, не в курсе, что MODX - это CMF, но это не мешает им определить, что контентом на сайте рулит именно MODX. Казалось бы, мы уже спрятали всё что надо. А вот и нет.

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

Если сайт уже установлен, то проверить этот параметр можно в системных настройках по адресу: домен_вашего.сайта/manager/?a=system/settings
И в поле «Поиск по ключу» ввести «send_poweredby_header» или просто «header» и нажать Enter на клавиатуре. Значение «send_poweredby_header» должно быть установлено как «Нет».

Также не лишним будет скрыть файлы конфигурации.
Для примера, возьмем первую ссылку из приведенного выше списка поиска Google , и попробуем открыть файл настроек config.core.php, или, не смотря на то, что на этом сайте уже закрыт листинг каталогов, по ссылке «www.vvhotel.ru/core/config/config.inc.php », сайт отдает результат исполнения файла.php, а это значить что каждый из этих файлов существует и даже по первому из них можно предположить, что сайт на MODX.

Скрыть этот файл можно при помощи.htaccess, дописав:

RewriteCond %{REQUEST_URI} ^(.*)config.core.php$ RewriteRule ^(.*)$

Кое-что ещё

Кроме описанных приёмов, можно применить небольшую хитрость, чтобы увести возможных злоумышленников по ложному следу. Некоторые «попсовые» CMS добавляли метатэги с указанием названия CMS:


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

Автоопределялки будут интерпретировать наш MODX как Wordpress, а если хулиганы захотят залезть в админку, то будут долго и нудно пытаться подобрать отмычки от простого замка к сканеру сетчатки глаза (это метафора:)).

А что, если сайт уже установлен?

В час наименьшей нагрузки, переименуйте все указанные каталоги (/core, если позволяет хостинг, лучше вынести из паблика).

Смените префикс существующих, с помощью phpMyAdmin :

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

Проверить права и доступ (на каталоги 755, на файлы 644).

Запустить процесс установки.

Во время установки вам надо будет указать физический путь до каталога ядра.

ВАЖНО выбрать вариант установки «Расширенное обновление (с настройкой параметров базы данных)», потому что после ввода данных БД, появится диалог переименования каталогов.

Можно, конечно, было залезть в config.inc.php и отредактировать всё там. Но зачем что-то делать, если этого можно не делать? :)

На этом всё. Если информация из этой статьи окажется Вам полезной - супер. Если захотите что-то спросить, добавить или просто поумничать - вэлкам в коменты!

Это выбор “движка” или как еще говорят “ядра сайта”. Названий может быть много, но суть одна - речь идет про выбор CMS. Задача менеджера - консультировать и помогать клиентам сделать этот непростой выбор.

Что такое CMS?

CMS (Content Management System) - это система управления контентом. С ее помощью можно легко управлять всей информацией на сайте - статьями, товарами или отзывами. Согласно различным интернет-рейтингам в топ-5 CMS-систем входит MODx. Как понять подходит ли данная CMS для Вашего сайта? Рассмотрим ее сильные и слабые стороны с точки зрения заказчика и пользы для бизнеса.

Преимущества:

1Кастомизация

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

2SEO-friendly

Успех онлайн-бизнеса определяется еще и рейтингом сайта, поэтому важно, чтобы CMS не создавала преград для SEO-продвижения , а давала хорошую базу. В отличие от многих других систем управления контентом MODx имеет набор инструментов, которые позволяют адаптировать сайт к требованиям поисковых роботов достаточно быстро. Сюда относятся и человекопонятные URL, и настройка мета-тегов и многое другое.

3Верстка

MODx не требует специальных шаблонов, может быть применена любая верстка . Каждый проект уникален, поэтому неудивительно, что большинство бизнесменов не хотят покупать шаблонную верстку. MODx позволяет использовать любую верстку.

4Прозрачность запросов к БД

Построение запросов к Базе Данных влияет на скорость работы Вашего сайта. Опытный программист в этой CMS самостоятельно пишет запросы, тем самым повышая скорость загрузки сайта.

5Открытый доступ к коду

Изменения в систему программист может внести в краткие сроки.

6Роли пользователей

В управлении сайтом участвует несколько лиц, например в интернет-магазине менеджеры занимаются обработкой заказов, а руководитель отдела маркетинга проверяет, насколько хорошо страницы оптимизированы для поискового продвижения . MODx позволяет разграничить права пользователей в административной панели: у каждого типа пользователя будет доступ только в определенные части CMS. Это поможет неопытному пользователю не нарушить работу сайта.

7Простота использования и удобство административной панели

Чаще всего для заказчика это является чуть ли не важнейшим критерием выбора, так как большую часть времени он будет проводить непосредственно в админке. У MODx, она проста в освоении и удобна в использовании.

8Легкое управление навигацией

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

Недостатки:

  1. Основной недостаток в том, что система не выдерживает высокие нагрузки - например, большая посещаемость, большое количество товаров, как на крупных интернет-магазинах.
  1. Стандартных ресурсов может быть не более 10000, но есть возможность расширения во внешние таблицы, модули. Не хранится история изменения ресурсов.
  1. Основываясь на описанных преимуществах и недостатках, подведем итог.

Для каких сайтов подходит MODx?

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

Любой проект ниже уровня фреймворка. Если у Вашего сайта должны быть функции, которые трудно реализовать стандартными возможностями CMS и подключением разных модулей, то выбор стоит сделать в сторону фреймворка. Например, разработать chat на MODx считается достаточно сложной задачей, в данном случае следует использовать фреймворк, например Laravel , так как он оптимизирован под высокую нагрузку и большую базу данных.

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

    • Что Вы хотите видеть на своем сайте?
    • Какие функции он будет выполнять?

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