Обзоры расширений Joomla

Убираем следы Joomla 1.5, 1.7

 

В статье «Защита Joomla (часть 3). Обновление» я рассматривал список того, что именно нужно сделать для затруднения распознавания использования Joomla на Вашем сайте. Безусловно, для тех, кто много работает с этой системой управления контентом, не составит большого труда при детальном рассмотрении узнать, что это Joomla. Но речь пойдёт именно о затруднении выяснения данного факта и о том, чтобы свести к минимуму варианты с автоматическим распознаванием версии системы управления контентом «роботами». Данные советы подойдут для Joomla 1.5, 1.6, 1.7. Но в основном будет делаться упор на актуальную стабильную версию Joomla 1.7. На момент написания статьи (09.01.2012) уже есть Joomla 2.5 beta 1. Для неё не все советы будут актуальны. Но не смотря на версию CMS, рекомендую скрыть Joomla следы.

Приведённый ниже список «следов Joomla» не является исчерпывающим. Порядок их рассмотрения не говорит об их важности. Для интереса Вы можете сперва проверить свой сайт при помощи сервиса Builtwith.com. Этот сервис позволяет определить некоторые параметры Вашего сайта. В том числе систему управления контентом, на которой сделан сайт. Если Builtwith.com определил её, то стоит задуматься о применении некоторых из нижеприведённых советов. Скрыть следы Joomla (самые явные) может даже начинающий веб мастер.

1. «Замаскировать» все расширения, используемые у Вас на сайте. Так как, например, при использовании Community Builder личный кабинет пользователей выглядит по умолчанию практически одинаково для всех сайтов. И можно будет сказать с большой долей вероятности, что Вы используете Joomla (и даже какую версию 1.0, 1.5, 1.7). Это может быть очень сложно и трудоёмко для сайтов с большим количеством различных расширений. Более того это, в основном, затруднит только визуальное выявление следов Joomla человеком.

Если Вы делали шаблон в Artisteer (детальнее об этой программе можно прочитать в следующих статьях «Обзор Artisteer (часть 1, 2, 3)»), или покупали\качали с какого-либо сайта, проверьте, чтобы в коде шаблона не было упоминаний о том, для какой системы управления контентом он сделан и с какого сайта он взят. Или при помощи чего он сделан. Например, тот же Artisteer вставляет в файл таблицы стилей следующую строчку (версия будет меняться в зависимости от версии Artisteer).

/* Created by Artisteer v3.0.0.35414 */

Просмотрев содержимое таблицы стилей и выяснив версию Artisteer, можно сузить круг возможных систем управления контентом (и их версий), на которой сделан Ваш сайт до четырёх (на 09.01.2012).

  • Drupal (5.x, 6.x, 7.х).
  • WordPress (2.6-3.0).
  • Joomla 1.5, 1.6, 1.7.
  • DotNetNuke 4.9 и более новая версия.

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

2. Заблокируйте способ просмотра позиций модуля для шаблона сайта (например, aleksius.com/?tp=1). Для Joomla 1.6, 1.7, 2.5 beta 1 это не актуально, так как в этих версиях Joomla подобный способ просмотра позиции модуля отключён по умолчанию. Если Вы используете Joomla 1.5, то в файле helper.php в папке /libraries/Joomla/application/module/ найдите следующие строки:

if(count($result) == 0) {

if(JRequest::getBool('tp')) {

$result[0] = JModuleHelper::getModule( 'mod_'.$position );

$result[0]->title = $position;

$result[0]->content = $position;

$result[0]->position = $position;

}

}

Закомментируйте их, добавив в начало каждой строки «//» (без кавычек). Найдите следующие строки:

if(JRequest::getBool('tp')) {

$attribs['style'] .= ' outline';

}

Закомментируйте их, добавив в начало каждой строки «//» (без кавычек). Проверьте.

После обновления Joomla убедитесь в том, что внесённые Вами изменения остались в силе.

3. Замените пути к папке с логами сайта (logs) и путь к папке с временными файлами (temp). Лучше не просто их переименовать, а вынести за пределы папки public_html.

4. Замените стандартную иконку сайта Joomla.

5. Замените стандартную картинку с логотипом Joomla на странице, когда сайт выключен (offline). Желательно, заменить и её имя (Joomla_logo_black.jpg). Но можно хотя бы просто сменить саму картинку. Она находится в папке images. Это не актуально для Joomla версии 2.5.0 (beta 1). После обновления Joomla убедитесь в том, что внесённые Вами изменения остались в силе.

6. Запретите просматривать файл README.txt в корне Вашего сайта. Это можно сделать при помощи назначения на него прав 400 или просто удалив его.

7. Можно усложнить анализ сайта, сделав код страницы менее структурированным и легко воспринимаемым для человека. Это почти никак не скажется на анализе сайта «роботом», а человеку привычней и удобней видеть код структурированным (рисунок ниже).

Код страницы

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

Оптимизированный код

Это возможно сделать, например, при помощи различных инструментов оптимизации загрузки сайта. Однако данное действие может привести к некорректному отображению и\или работе сайта. Так что будьте внимательны. Помимо этого данный способ может увеличить количество ошибок в коде Вашего сайта, а это может привести к незначительному ухудшению Ваших SEO показателей.

8. Позаботьтесь о том, чтобы нельзя было просматривать содержимое стандартных папок Joomla (например, папки Components). Это можно сделать, поместив в корень папки файл index.html. Или дописав в конце файла .htaccess в корне сайта следующую строку.

Options –Indexes

Например.

RewriteRule .* index.php [L]
#
Options -Indexes
## End - Joomla! core SEF Section.

9. Смените «стандартный» путь для перехода на страницу авторизации административной панели сайта (http://testirovanie.aleksius.com/administrator). Для этого можно воспользоваться различными расширениями. Например, платное – jSecure Authentication (детальнее о нём Вы можете прочитать в статье «Обзор jSecure Authentication. Защита админки Joomla»). Просто переименование папки administrator может вызвать только проблемы. В решении данного пункта также может пригодиться компонент защиты сайта Joomla RSFirewall.

10. Смените вид постраничной навигации. Если у Вас на сайте используется представление страницы типа Блог категорий, при достижении определённого числа статей на странице Joomla переносит остальные на другую страницу и внизу добавляет модуль постраничной навигации (рисунок ниже).

Модуль постраничной навигации

Данный модуль может выглядеть одинаково для многих сайтов. Поэтому в интернете я не раз находил материал о том, что этот модуль необходимо модифицировать и как это сделать.

11. Смените вид страницы ошибки 404. Если запросить с вашего сайта несуществующую страницу, то Joomla выдаст «стандартное» окно ошибки (рисунок ниже).

Страницы ошибки 404 Joomla

Сменить стандартную страницу ошибки 404 можно при помощи правки кода ядра Joomla или при помощи специальных расширений, например Error404. И первый, и второй способ имеют свои достоинства и недостатки. В случае с правкой кода Вам необходимо будет вносить изменения в файл каждый раз при его обновлении (например, при обновлении Joomla). В случае с установкой дополнительного расширения всё становится крайне просто и сводится к настройке самого расширения средствами визуального интерфейса. Но дополнительное расширение – это дополнительный код на сайте, увеличение его размера, нагрузка на сервер и вероятность добавления новых уязвимостей безопасности. В случае с Error404, плагином перенаправлений в Joomla 1.7 пользоваться нельзя. Так как Error404 требует активации собственного плагина перенаправлений и обязательной дезактивации встроенного. В интернете Вы можете найти много способов для создания собственной страницы ошибки 404 для Joomla 1.5 и 1.7. Для примера, приведу следующий способ для Joomla 1.7.

  • Создайте статью Joomla, которую необходимо отобразить вместо страницы с ошибкой 404.
  • Создайте меню (в менеджере меню), которое не будет нигде выводиться. Этот и следующий пункты нужны для того, чтобы у страницы был адрес не «http://testirovanie.aleksius.com/index.php?option=com_content&view=article&id=68:review-autoplay-media-studio-part-4&catid=20:miscellaneous&Itemid=123», а, например «http://testirovanie.aleksius.com/404»
  • В этом меню создайте пункт меню на созданную статью. Алиас данного пункта меню задайте «404» (без кавычек). Можно задать другой алиас.
  • Откройте файл error.php в папке templates/system.
  • Найдите и замените следующие строки (10-12 стока):

if (!isset($this->error)) {

$this->error = JError::raiseWarning(404, JText::_('JERROR_ALERTNOAUTHOR'));

$this->debug = false;

на следующие:

if (($this->error->getCode()) == '404') {

header('Location: /404');

exit;

где /404 и есть адрес той статьи, что Вы создали.

После обновления Joomla убедитесь в том, что внесённые Вами изменения остались в силе.

12. Смените ссылки сайта со «стандартных» (http://testirovanie.aleksius.com/index.php?option=com_content&view=article&id=68:review-autoplay-media-studio-part-4&catid=20:miscellaneous&Itemid=123) на ЧПУ (http://testirovanie.aleksius.com/articles-2/safety/78-Joomla-protection-part-3). Для этого можно воспользоваться или встроенными средствами самой Joomla или сторонними расширениями (например, sh404SEF).

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

Поля Алиас

Затем в общих настройках Joomla на вкладке Сайт в группе настроек Настройки SEO включить использование ЧПУ (рисунок ниже).

Настройки SEO

13. Уберите мета теги Joomla (описание и ключевые слова сайта) и тег generator. Мета теги Вы можете убрать в общих настройках Joomla вкладка Сайт.

Приведу пример, как убрать тег generatorдля Joomla 1.7.

  • Откройте файл head.php в папке /libraries/Joomla/document/html/renderer/.
  • Найдите и удалите в нём следующую строку (91-я)

$buffer .= $tab.'<meta name="generator" content="'.htmlspecialchars($document->getGenerator()).'" />'.$lnEnd;

После обновления Joomla убедитесь в том, что внесённые Вами изменения остались в силе. В решении данного пункта может пригодиться компонент защиты сайта Joomla RSFirewall.

При написании данной статьи были использованы материалы сайта Eldia.org.ua. Как Вы могли заметить скрыть следы Joomla (по крайней мере самые явные) достаточно просто. Считаю, что для повышения защищённости сайта от взлома убрать Joomla следы весьма желательно. В статье «Защита Joomla (часть 10). Компоненты защиты Joomla» мы рассмотрим расширения, которые помогут Вам создавать резервные копии сайта.

 

Полезные ссылки:

Похожие статьи: