- •Практическая работа № 15 «Joomla 2.5: Поисковая оптимизация и защита сайта. Перенос сайта»
- •Метаданные статьи
- •Карта сайта и навигационная строка
- •Запрет индексирования некоторых страниц (файл robots.Txt)
- •Статистика сайта. Маркировка страниц. Журналы сервера.
- •Безопасность сайтов
- •Перенос сайта на другой хостинг
-
Безопасность сайтов
Проблема всех популярных систем управления контентом (CMS) заключается в том, что они легко взламываются. Причем для взлома сайта не нужно быть хакером высокого уровня – инструкции по взлому стандартных CMS опубликованы на многочисленных сайтах, и в большинстве случаев для их применения не нужно обладать какими-либо специальными знаниями, достаточно уметь использовать браузер.
К сожалению, Joomla – это одна из таких популярных систем, которые легко могут быть взломаны. Однако, выполняя некоторые рекомендации и посещая сайты, посвященные безопасности Joomla, вы можете существенно снизить риск взлома.
Патчи.
На специальных сайтах можно найти патчи («заплаты»), закрывающие «дыры» в защите Joomla. Вовремя установив «заплату» на свой сайт, вы обезопасите его на некоторое время – пока не будут найдены новые уязвимости.
Обязательно регулярно обновляйте версию Joomla – каждая новая версия выходит со всеми существующими на данный момент «заплатами».
В панели управления Joomla проверьте, что у вас установлена последняя версия (п. 13.2, рис. 1), если это не так, обновите Joomla.
Уязвимости могут быть не только в Joomla, но и в настройках хостинга, причиной взлома может быть и человеческий фактор (например, слишком простой пароль администратора).
Каталог installation должен быть обязательно удален после установки Joomla – так никто не сможет переустановить вашу же Joomla. Версия 2.5 не запустится, если каталог installation не был удален, – вы не сможете зайти ни на сайт, ни в панель управления.
Опасные директивы РНР.
Отключите директиву register_globals. Для этого в файле конфигурации php.ini исправьте:
register_globals = 0
Директива register_globals – это не уязвимость РНР, просто не все разработчики умеют правильно писать код с включенной директивой register_globals.
Директива disable_functions содержит список запрещенных РНР-функций. На хорошо защищенном хостинге этот список выглядит так:
disable_functions = show_source, system, shell_exec, passthru, exec, phpinfo, popen, proc_open
Внесите необходимые исправления в файл php.ini.
Отключите директивы safe_mode и allow_url_fopen:
safe_mode = 0
allow_url_fopen = 0
Права доступа к файлам и папкам сайта.
Установите к файлу конфигурации configuration.php права доступа всем только на чтение (код доступа 444 для Linux-подобных операционных систем). При этом придется каждый раз на время правки сайта возвращать право на изменение, затем снова убирать.
На остальные файлы и папки установите право на изменение только администратору, всем остальным – только чтение (значение 644 для файлов, 755 – для каталогов).
Права на изменение (значение 777) для всех установите только на следующие каталоги:
-
administrator/backups/
-
cache/
-
images/
-
images/banners/
-
images/stories/
Всё это нужно сделать уже после того, как настроили сайт и установили все необходимые расширения. Желательно также защитить каталог administrator паролем средствами управления хостингом.
Доступ к панели управления с определенных IP-адресов.
Скорее всего, вы управляете сайтом с одного-двух компьютеров, например, с рабочего и с домашнего. IP-адреса этих компьютеров и следует считать разрешенными, доступ со всех остальных адресов к панели управления нелегален.
В каталоге сайта administrator создайте файл .htaccess и добавьте код следующего содержания:
<Limit GET>
Order Deny, Allow
Deny from all
Allow from 91.91.91.91, 91.91.91.92
</Limit>
Здесь устанавливается доступ к каталогу administrator только с IP-адресов 91.91.91.91 и 91.91.91.92 (впишите свои реальные IP-адреса).
Если на определенное время (например, отпуск) необходимо полностью исключить доступ к панели управления сайтом, откройте файл .htaccess и измените его так:
<Limit GET>
Order Deny, Allow
Deny from all
</Limit>
Когда «отпуск» закончится, следует вернуть исходную версию файла .htaccess.
В адресную строку браузера введите: http://www/components/
Вы должны увидеть сообщение, что доступ запрещен. Если сервер выдал список файлов и каталогов, значит, он настроен неправильно. Нужно отключить опцию Indexes, о чем следует уведомить администратора хостинга.
В случае взлома.
Сначала нужно просмотреть журналы сервера на предмет следующих строк:
mosConfig
http://
wget
perl
_REQUEST
Чаще всего наличие этих строк в журналах сервера указывает на факт взлома. По содержимому подобных строк попробуйте определить IP-адрес злоумышленника и закройте доступ к вашему серверу с его подсети. Это не панацея, так как завтра сайт могут взломать из другой точки земного шара, это временное решение.
Возможно, придется восстановить Joomla из резервной копии.
Список ресурсов про безопасность Joomla.
1. Контрольный список безопасности (на английском языке):
http://docs.joomla.org/Joomla_Administrators_Security_Checklist
2. Краткое руководство администратора по обеспечению безопасности Joomla-сайта: http://www.joomla-docs.ru/Безопасность
3. Список уязвимостей и способов защиты можно найти на сайте Joomla-портала в категории Безопасность:
http://joomlaportal.ru/content/blogcategory/15/88/
К сожалению, полностью защитить сайт невозможно. Никто не даст гарантии, что компоненты Joomla и расширения сторонних разработчиков абсолютно безопасны.
Следует внимательно относиться к устанавливаемым расширениям и перед установкой расширения желательно почитать о нем отзывы.