Защита сайта, созданного на CMS Joomla.

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

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

Это четвертый шаг по созданию и продвижению вашего сайта, первые три шага читайте в статьях:

  1. Как сделать сайт самому бесплатно.
  2. Как заполнить сайт материалами.
  3. Перенос сайта на хостинг (или как выложить сайт в интернет)

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

Основные способы взлома сайта на CMS Joomla

  1. Вирус - один из самых опасных. После внедрения к вам на компьютер, вирус сканирует его на наличие FTP менеджера. В них есть адреса серверов и пароли к ним, которые специальный скрипт отправит хакеру. Этого будет достаточно, чтобы потерять сразу все свои сайты разом, так как с вашими сайтами могут сделать что угодно. Например в код вашего сайта может быть вставлен iframe с вредоносным кодом, различные JS скрипты или ссылки на другие сайты и т.д. и из-за этого на ваши сайты станут ругаться все антивирусы и поисковые системы.
  2. SQL инъекция - получении доступа к файлам базы данных. А если точнее, то к логину и паролю администратора. Таким образом хакер может не только увидеть ваш логи и пароль или другие данные, но и изменить их под свои нужды или же вообще удалить все сайты. Это довольно распространённый способ взлома.
  3. Восстановление пароля администратора - можно в адресной строке прописать такой код:
    вашсайт/index.php?option=com_user&view=reset
    и откроется окошко для восстановления пароля. Хакеры вводят туда специальный код и изменяют ваш пароль на свой, получая доступ в административную панель вашего сайта и могут сделать с ним всё что угодно. В последнее время сайты на Joomla пытаются взломать именно этим способом.
  4. Ошибки безопасности в расширениях - взлом сайта через ошибки в безопасности в различных компонентах, используя ввод методом POST на определённые страницы. В папке с компонентом, который взломали, будет появляться много чужих файлов и сайты с такими папками скорее всего заблокирует хостер. Также поисковые системы будут указывать на то, что на сайте вирус.
  5. PHP инъекция - внедрение вредоносного кода через ваш сервер.
  6. XSS или межсайтовый скриптинг - возникает во время генерации сервером страниц, в которых содержится вредоносный скрипт. Эта атака так же может произойти из-за вашего сервера. Например, если с вами на сервере находится зараженный объект или сайт, то вы так же находитесь в опасности.

 

Защита сайта на CMS Joomla

  1. Установка хорошего антивируса на ваш компьютер, который регулярно будет обновлять свои базы вирусов.
  2. Скачивайте расширения только с проверенных источников и с официальных сайтов разработчиков этих расширений. На варезных сайтах могут находится не только оригинальные, но и краденные или взломанные расширения с неизвестно каким содержимым. А если всё-таки скачали что-то, то перед установкой проверьте антивирусом. Тестируйте такие расширения сначала на тестовом сайте, перед тем как ставить на рабочий.
  3. Обязательно делайте резервные копии сайта и базы данных. Для этого используйте расширение Akeeba Backup . Это поможет защититься не только от хакеров, но и от своих собственных ошибок, делая резервные копии сайта после каждого изменения и скачивая его на свой компьютер.
  4. Для того, чтобы спрятать свой сайт от глаз хакеров, также нужно использовать SEF компоненты для генерации человеконятных ссылок. Для этого вполне можно пользоваться стандартным, встроенным в Joomla SEF или же установить стороннее расширение с таким компонентом. Это необходимо из-за того, что Joomla по своему генерирует ссылки.
  5. Скройте, какую CMS вы используете. Это снизит риск попадания поле зрения хакера вашего сайта. Для этого удалите из кода вашего сайта строчку:
    <div><?php echo JText::_( 'FOOTER_LINE2' ); ?></div>
    , которая находится 
    в файле - вашсайт/modules/mod_footer/tmpl/default.php
  1. Установите плагин Backend Token или другие, подобные ему для защиты административной панели Joomla. В этом плагине нужно будет ввести кодовое слово. После того, как вы его введёте, ссылка на админ-панель вашего сайта будет выглядеть так: вашсайт/administrator/index.php?token=кодовое_слово. Таким образом хакер просто не сможет даже увидеть вашу административную панель, введя обычный в адресной строке браузера путь в административную панель сайта - вашсайт/administrator. Это хорошая и простая защита административной панели Joomla.
  2. Постоянно обновляйте расширения, которые стоят на вашем сайте, а при установке новых – ищите самые свежие версии. Разработчики часто выпускают обновления своих продуктов с улучшенной защитой, т.к. хакеры постоянно находят в них какие-нибудь изъяны.
  3. Все расширения, которые не используются на сайте в данный момент лучше удалять полностью! Также базу данных необходимо почистить. Оставляйте только самое необходимое и не ставьте все подряд для различных тестов на рабочий сайт. Например, в каком-то расширении хакеры нашли уязвимость. Если у вас стоит именно оно, а вы им даже не пользуетесь и, естественно, не обновляли его (пусть он даже и выключен), то это всё равно не спасёт вас от атаки.
  4. Для того, чтобы хакеры не знали, какая версия уязвимого расширения стоит на вашем сайте (версии постоянно обновляются и избавляются от "дырок"), вам необходимо удалить номера версий всех сторонних расширений. Для этого с помощью любого текстового редактора удалите в файлах этих расширений любые упоминания об их версиях.
  5. Если на своем сайте не используете модуль регистрации пользователей, то лучше удалить файлы, которые отвечают за восстановление пароля и его сброс. Также можно удалить или всю папку com_user (которая находится по пути вашсайт/components) или отдельный файл, отвечающий за сброс - reset.php. Этот файл находится по пути - вашсайт/components/com_user/models.
  6. Для борьбы с SQL инъекциями есть два основный способа. Первый - это установка расширения, подобного RSFireWall (хороший и довольно мощный компонент) и включение всех его функций. Второй - это смена префикса к таблицам в базе данных,который защитит ваш сайт практически от всех SQL инъекций. Подробнее второй способ:
  • отключите сайт в общих настройках joomla, так как он всё равно выйдет из строя на некоторое время
  • обязательно сделайте резервную копию данных
  • заходите в административную панель своего сайта, перейдите в общие настройки/сервер. В правой части экрана ищите "Префикс базы данных", там будет написано jos_. Заменяете его на любую надпись, например, на soj_ и сохраняете
  • вам необходимо сделать экспорт своей базы данных на компьютер и сохранить её - зайдите в PhpMyAdmin, выберете базу данных и в правой части экрана вверху ищите "Экспорт". Выделяете все части базы, внизу ставьте SQL и ещё чуть ниже "Сохранить как файл". Справа внизу нажимаете на кнопочку "Ok". Сделайте ещё одну копию на всякий случай и сохраните её куда-нибудь в другое место;
  • далее можно приступить к удалению базы из PhpMyAdmin. Выберете базу данных, промотайте мышью в низ экрана и найдите там "Отметить все". Отмечаете и чуть правее ищите "С отмеченными" и выбирайте удалить;
  • далее необходимо открыть сохранённый файл с базой данных текстовым редактором, к примеру, блокнотом. Нажмите Ctrl+H и увидите такое окно, с помощью которого можно изменить все префиксы в Вашей таблице, нажав на "Заменить все":
  • далее заходите в PhpMyAdmin и нажимайте справа вверху "Импорт" и выбирайте Ваш файл с новыми данными. Кодировку поставьте UTF-8.
  1. Правильно выставите права на файлы и папки, с помощью какого либо файлового менеджера или прямо на хостинге, где расположен ваш сайт в разделе «Файловый менеджер». Важно – у каждого сервера могут быть свои настройки, которые лучше узнать у своего хостера, но обычно ставят такие права:
  • файлы, которые находятся в корневой директории 444,
  • папка в корневой директории 755,
  • папка tmp и logs 705,
  • папка шаблона 555,
  • папка image/stories 755,
  • папка Cache 777.

     13.     Изменить название файла htaccess.txt на .htaccess

     14.     При вводе в адресную строку браузера вашсайт/?tp=1 будет показана    страница вашего сайта со всеми модулями шаблона. По этому признаку можно понять, что у вас стоит именно Joomla. Исправляется это так - отключить в настройке шаблонов сайта предпросмотр или прописать в файле .htaccess строки :

  • ##### Start ?tp=1 prevention ######
    RewriteCond %{QUERY_STRING} tp=(.*)
    RewriteRule ^(.*)$ index.php [F,L]
    ##### End ?tp=1 prevention ######

 

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

Следующий, пятый пункт плана по созданию, раскрутке и заработку на своем сайте - План раскрутки сайта