Реальный пиарCmsJoomla → Заметаем следы Joomla!

Заметаем следы Joomla!

шаблоны joomla

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

Итак, сначала рассмотрим всевозможные признаки, по которым мы в первую очередь пытаемся идентифицировать систему управления контентом Joomla!

1. Копирайты внизу страницы. Не все стремятся скрыть движок сайта и поэтому даже не убирают копирайты: например Joomla! is Free Software released under the GNU/GPL License.
2. Ссылки на страницы. Стандартные ссылки у Joomla! выглядят подобным образом:
http://site.ru/index.php?option=com_frontpage&Itemid=1
http://site.ru/index.php?option=com_content&task=view&id=14&Itemid=1
http://site.ru/content/view/14/1/ и т.д. и т.п.
3. Админка. Проверяем наличие админки по стандартному адресу Joomla! – site.ru/administrator
4. Meta-теги. Некоторые доблестные сайтостроители забывают изменить описание сайта и его ключевые слова. В итоге в исходном коде страницы мы можем наблюдать следующее:
<meta name="description"
content="Joomla - the dynamic portal engine and content management system" />
<meta name="keywords" content="Joomla, joomla" />

А также тег generator, который генерируется ядром:
<meta name="Generator"
content="Joomla! - Copyright © 2005 - 2007 Open Source Matters. All rights reserved." />

5. Просмотр позиций для модулей. При просмотре сайта по адресу site.ru/?tp=1 можно легко убедиться что сайт работает именно на CMS Joomla!
6. Robots.txt. Просмотрев этот файлик по адресу site.ru/robots.txt можно также с большей долей вероятности определить CMS:
User-agent: *
Disallow: /administrator/
Disallow: /cache/
Disallow: /components/

7. Постраничная навигация сайта. Иногда достаточно одного взгляда на построение постраничной навигации:
<< В начало < Предыдущая 1 2 3 4 5 Следующая > В конец >>
8. Содержимое папок сайта. На некоторых хостах можно посмотреть содержимое всех папок сайта: например site.ru/components/
9. Стандартные пути к шаблону и название соответствующих классов (зашитых в ядро).
10. Стандартная иконка Joomla! Многие забывают о ней или не считают нужным сменить, но это ведь почти стопроцентный признак.
11. Ошибка 404. После ввода заведомо несуществующего адреса, Joomla! выдает стандартную, всем знакомую красненькую табличку с надписью 404 - Компонент не найден и пояснениями возможных причин.
Теперь способы избавления от вышеперечисленных следов:

1.Копирайты в подвале сайта
Joomla 1.0.x
После установки Joomla! внизу страницы мы можем наблюдать примерно такую картину:

© 2009 Site Name
Joomla! is Free Software released under the GNU/GPL License.

Изучив код шаблона (index.php вашего шаблона) мы обнаруживаем такую строку:
<?php include_once( $GLOBALS['mosConfig_absolute_path'] . '/includes/footer.php' ); ?>

Удалив ее, можно избавиться от вывода копирайтов в подвале сайта. Но только для этого шаблона. Если у вас есть вредная привычка часто менять шаблоны, есть смысл сделать небольшой хак, что б избавиться от этого раз и навсегда
Открываем файл includes/footer.php и видим следующие стоки:
Этот div выводит значок копирайта, текущий год и название вашего сайта.
<div align="center">
&copy; <?php echo mosCurrentDate( '%Y' ) . ' ' . $GLOBALS['mosConfig_sitename'];?>
</div>

А этот div выводит версию движка и лицензию.
<div align="center">
<?php echo $_VERSION->URL; ?>
</div>

Удаляем или редактируем как нужно.

Joomla 1.5.x
В линейке 1.5.x вывод копирайтов осуществляется в корне отличным способом и убрать его можно как минимум тремя способами:
а) В менеджере модулей отключить вывод модуля "Footer" (mod_footer). Но в этом случае исчезнуть все копирайты, а не только "joomla-овские".
б) В языковом файле languageru-RUru-RU.mod_footer.ini в строках:
FOOTER_LINE1=
FOOTER_LINE2=
Убрать все, что справа от знака равно
в) В файле modulesmod_footertmpldefault.php отключить вывод 2-ой строки, удалив строку:
<div><?php echo JText::_( 'FOOTER_LINE2' ); ?></div>

2. Ссылки на страницы.
Чтобы изменить стандартный тип ссылок на внутренние страницы Joomla! сайта необходимо использовать сторонние компоненты, которые могут создавать любые ссылки на внутренние страницы вашего сайта – sh404SEF, ARTIO JoomSEF, NuSEF (бесплатные), SEF Advance (платный) и другие. Обзор этих компонентов выходит за рамки этой статьи.

3. Админка.
Всем известно что вход в административную часть сайта на CMS Joomla! осуществляется через site.ru/administrator
Есть два способа скрыть вход в админку.
а) Средствами сервера: поставить пароль на папку administrator
В папке administrator создаем такой .htaccess:
AuthName "For Registered Users Only"
AuthType Basic
AuthUserFile /pub/site.ru/.htpasswd
require valid-user
</Files>

где значение AuthName будет выводиться для посетителя и может использоваться для пояснения запроса авторизации. Значение AuthUserFile указывает на место, где хранится файл с паролями для доступа к данной директории. Этот файл создается специальной утилитой htpasswd.exe.

Но! У этого способа есть один очень существенный недостаток: если используются расширения у которых файлы обращаются к папке администратора (например языковый файл или другие), то вместо требуемого пользователь столкнется с предложением ввести логин и пароль (по отзывам посетителей, а именно SadowXak)
Поэтому способ б) является более предпочтительным:

б) Средствами Joomla: поставить специально предназначенные для этого расширения.

Например плагин для Joomla! 1.5 jSecure Authentication. При переходе на страницу site.ru/administrator он включает заданную переадресацию. В админку можно попасть, только задав ключевое слово в адресной строке: site.ru/administrator/?password

Существует масса подобных расширений на JED.


4. Meta – теги сайта. Description, keywords и Generator.
Содержимое meta-тегов Description и keywords прописывается в глобальных настройках сайта и означает не что иное, как описание сайта и его ключевые слова. Просто не забывайте заполнять эти данные (встречается и такое). А вот на meta-тег Generator без хака мы повлиять не сможем.
Generator для Joomla! 1.0.x:
В исходном коде страниц видим:
<meta name="Generator" content="Joomla! - Copyright © 2005 - 2007 Open Source Matters.
All rights reserved." />

Данная строка выводится в функции mosShowHead() файла includes/frontend.php, строка 195 (для Joomla 1.0.15):
$mainframe->addMetaTag( 'Generator', $_VERSION->PRODUCT . ' - ' . $_VERSION->COPYRIGHT);

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

smart

Generator для Joomla! 1.5.x:
В исходном коде страниц видим:
<meta name="generator" content="Joomla! 1.5 - Open Source Content Management" />

Есть два способа влияния на мета-тег Generator: путем хака ядра и внесением кода в шаблон.
Первый способ (хак ядра Joomla!) подходит тем, кто не планирует постоянно обновлять ядро сайта и/или часто меняет шаблоны сайта.
Открываем следующие файлы:
librariesjoomladocumentdocument.php
librariesjoomladocumenthtmlrendererhead.php
Если хотим просто изменить эту строку, то в файле document.php находим примерно 85 строку:
var $_generator = 'Joomla! 1.5 - Open Source Content Management';

и вставляем свое внутрь кавычек ‘ ‘
Если хотим совсем удалить этот мета тег, то в файле head.php, комментируем // строку (примерно 83):
$strHtml .= $tab.'<meta name="generator" content="'.$document->getGenerator().'" />'.$lnEnd;
Второй способ (правка шаблона), более мягкий и не требует вмешательства в код ядра Joomla! (при обновлениях ядра можно не беспокоиться о хаках, так как их просто не будет).
Где-то между тегами <head> и </head> вставляем следующую строку:
<?php $this->setGenerator('Ваш мета-тег geneator');?>
Или же оставляем пустое значение мета-тега:
<?php $this->setGenerator(''); ?>

5. Исключаем возможность просмотра позиций для модулей через site/?tp=1
Для Joomla! 1.0.x
Для этого нам надо сделать небольшой хак.
Открываем файл /includes/frontend.php
Ищем примерно 129-135 строки (для Joomla! 1.0.15):
$tp = intval( mosGetParam( $_GET, 'tp', 0 ) );
if ($tp) {
echo '<div style="height:50px;background-color:#eee;
margin:2px;padding:10px;border:1px solid #f00;color:#700;">';
echo $position;
echo '</div>';
return;
}

Удаляем их, либо комментируем.

Для Joomla! 1.5.x
Открываем файл /libraries/joomla/application/module/helper.php
Ищем примерно 96-103 строки:
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;
}
}

Комментируем их, добавляя в начало каждой строки //.
Далее ищем примерно 199-201 строки:
if(JRequest::getBool('tp')) {
$attribs['style'] .= ' outline';
}

Комментируем их, добавляя в начало каждой строки //.

За решение спасибо nikonor


7. Постраничная навигация.
Для изменения внешнего вида постраничной навигации необходимо немного переработать ее вывод. В этом поможет статья «Хак постраничной навигации сайта на CMS Joomla!»

8. Запрет просмотра содержимого папок вашего сайта.
Если набрать адрес существующей папки, например, http://example.org/components/com_content/ и вы видите ее содержимое, то это значит, что на Вашем сервере настроенная выдача список директорий.
Это дает возможность злоумышленнику дополнительные плюсы при изучении вашего сайта. Избежать открытого списка можно двумя способами:
1. В .htaccess или в конфигурации apache создать директиву:
Options -Indexes

2. В каждую директорию положить пустой файл index.html. По умолчанию загружается файл с названием index (.htm, .html, .php и т.д.).

Dutch

10. Стандартная иконка Joomla!
В первую очередь иконка сайта favicon.ico ищется в корне сайта. Вы можете создать свою иконку (например с помощью сервиса http://favicon.ru) и загрузить ее в корень. Второй вариант - иконка помещается в папку вашего шаблона. Для большей уверенности можно также прописать в index.php шаблона в блоке <head>
<link rel="icon" href="http://ваш-сайт.ru/путь_к_иконке/favicon.ico" type="image/x-icon">
<link rel="shotcut icon" href="http://ваш-сайт.ru/путь_к_иконке/favicon.ico" type="image/x-icon">

11. Ошибка 404.
Для скрытия этого признака нужно создать собственную страницу 404 ошибки и оформить ее в стиле шаблона либо как захочется. Все варианты решения этого вопроса приводить не буду а просто дам ссылку на тему из FAQ на joomlaforum.ru - Cобственная страница ошибок 404 в Joomla! 1.5


Источник: http://webmaster-joomla.com

Рекомендуем



Распространенные ошибки Joomla! и способы их решения Решение: в панели управления хостингом создаем двух или трех пользователей вашей базы данных, с правами, идентичными основному пользователю


Обзор клиентов для работы с CMS Joomla! Blogg-X Blogg-X работает локально на вашем компьютере как настольное приложение и использует встроенный WYSIWYG и HTML редакторы


Миграция с Joomla! 1.5 на Joomla! 1.6 ru, большинство пользователей готово перенести сайт на новую систему, при условии, что используется только стандартный фунционал 1