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

Меня зовут Алексей Солдатов, я руковожу техподдержкой в SpaceWeb. В этой статье рассказываю, как из всего многообразия плагинов выбрать действительно надёжные. В конце — подборка хороших бесплатных плагинов для популярных CMS. 

Что умеют плагины для защиты сайта

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

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

Разберём основные функции на примере плагинов для Wordpress, Joomla! и OpenCart.

1. Находить и удалять вредоносный код и программы

Вот четыре самых распространённых вида атак на сайт:

  • XSS-атака внедрение вредоносного JavaScript-кода, 

  • LFI — включение локального файла; 

  • SQL-инъекция внедрение вредоносного кода в запросы, которые сайт делает к своей базе данных; 

  • Внедрение вредоносного ПО, например, бэкдоров.

С каждой их них успешно борется, например, плагин Defender Security для WordPress. По запросу администратора он сканирует код файлов на сервере или заголовки запросов к сайту. А затем с помощью сигнатурного анализа находит вредоносный код. После этого администратор может в два клика выделить и удалить подозрительные файлы.

Defender Security показывает подозрительные файлы и изменения в них
Defender Security показывает подозрительные файлы и изменения в них

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

А если вы используете CMS Joomla!, для этой цели можно применять, например, плагин RSFirewall или Admin Tools Professional. Для сайтов на OpenCart существует модуль «Отчет об изменении файлов сайта».

2. Блокировать пользователей, которые много раз неудачно пытаются войти на сайт

Один из самых частых способов взломать сайт — брутфорс-атака, или атака перебором. Хакерская программа пробудет разные комбинации данных, пока не угадает логин и пароль. Для защиты от этого типа атак можно использовать, например, упомянутый выше Defender Security или All-In-One Security

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

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

В All-In-One Security можно вручную настроить количество попыток подбора логина и входа, а ещё время блокировки
В All-In-One Security можно вручную настроить количество попыток подбора логина и входа, а ещё время блокировки

Для защиты от брутфорс-атак сайтов на Joomla! можно использовать, например, плагин RSFirewall или Securitycheck Pro, а на OpenCart — модуль «Блокировка входа при подборе пароля OpenCart».

3. Установить файрвол

Файрвол — это проактивная защита от взлома и DDoS-атак. Он в реальном времени идентифицирует и блокирует вредоносный трафик на основе заданных правил. 

Например, с помощью того же Defender Security можно блокировать IP-адреса, с которых поступает вредоносный трафик. Разработчики собирают «чёрный список» адресов, с которых атаковали сайты с установленным Defender Security, а затем прописывают его в виде правил для плагина. 

Ещё один вариант — блокировка по user-agent, «цифровому отпечатку» пользователя. Так называют сочетание браузера и характеристик операционной системы. Плагин определит, с помощью каких ОС и браузера злоумышленник заходил в систему, и заблокирует его даже после смены IP. А ещё можно настроить блокировку по региону, откуда идёт нежелательный трафик.

В Defender Security можно просматривать логи: узнавать, какой трафик когда был заблокирован
В Defender Security можно просматривать логи: узнавать, какой трафик когда был заблокирован

Владельцы сайтов на Joomla! могут установить для этой цели, например, многофункциональный плагин GP Firewall, а для OpenCart есть модуль OpenCart Defender.

4. Настроить защиту от спама и регистраций ботов

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

Чтобы установить на сайт двухфакторную аутентификацию (TFA) для пользователей, которые регистрируются на сайте или входят в свой профиль, нужно настроить интеграцию плагина по API с одним из популярных сервисов TFA. Например, у того же All-In-One Security это Google Authenticator, Microsoft Authenticator, Authy. Стандартную двухфакторную аутентификацию для всех пользователей можно настроить бесплатно. А премиум-тариф плагина даёт ещё больше возможностей:

  • настроить обязательную TFA для конкретных ролей. Например, для администраторов и редакторов сайта.

  • делать запросы TFA через определённое время, к примеру, дважды в неделю.

  • создать список доверенных устройств, для которых не обязательно запрашивать TFA при каждом входе в систему;

  • сделать аварийные коды доступа на случай, если пользователь потеряет устройство.

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

Чтобы добавить двухфакторную аутентификацию на сайт с помощью плагина Wordfence Security, настройте интеграцию с любым приложением или службой аутентификации на базе TOTP — одноразового пароля на основе времени. Например, Google Authenticator, Authy, 1Password или FreeOTP. Эти сервисы генерируют уникальный секретный ключ в виде QR-кода, который пользователь сканирует с помощью телефона. Коды генерируются каждые 30–60 секунд — за это время нужно успеть подтвердить доступ.

В Defender Security можно просматривать логи: узнавать, какой трафик когда был заблокирован
В Defender Security можно просматривать логи: узнавать, какой трафик когда был заблокирован

Ещё плагины безопасности умеют фильтровать спам. К примеру, All-In-One Security автоматически блокирует спамеров по IP. Параллельно администратор может блокировать подозрительных пользователей вручную. 

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

Третий способ защиты от спама и ботов — капча. Чтобы подключить её на сайт с помощью одного из плагинов безопасности, нужно настроить интеграцию по API с популярными сервисами капчи. У плагина Defender Security это Google reCAPTCHA, у плагина All-In-One Security — Cloudflare Turnstile или Google reCAPTCHA, Honeypot или простая математическая капча. Можно настроить плагин так, чтобы модератор вручную одобрял или отклонял учётные записи пользователей.

Если у плагина безопасности нет функции капчи, можно подключить отдельный сервис капчи. Например, установить плагин reCaptcha или сервис SmartCaptcha от Яндекса. У нас есть подробная статья с инструкцией, как установить капчу для сайта на WordPress.

Для сайтов на Joomla! принцип тот же: проще использовать отдельные сервисы капчи и двухфакторной аутентификации: reCAPTCHA или hCaptcha, Google Authenticator. Для сайтов на OpenCart есть модуль «Двухэтапная авторизация для Opencart».

5. Защищать и восстанавливать важные файлы

К таким важным данным обычно относятся файлы ядра CMS, тема сайта, вручную прописанный код или CSS. Так, с помощью плагина All-In-One Security можно ограничить права доступа к ним. К примеру, оставить право на редактирование только администратору, а пользователям с другими ролями дать право на просмотр. 

Плагин Wordfence Security работает иначе. Он сравнивает файлы сайта, темы и плагины с теми, что находится в репозитории WordPress.org, проверяет их целостность и сообщает владельцу сайта о любых изменениях. Если кто-то отредактирует файлы, можно будет перезаписать их с оригинальной версии.

А плагин BulletProof Security для WordPress умеет ещё больше: автоматически создавать резервные копии баз данных, отправлять их на email, удалять устаревшие копии и восстанавливать сайт из бэкапа в случае повреждений. Это удобно, если не хочется регулярно делать бэкап сайта вручную. 

Владельцы сайтов на Joomla! могут использовать для этой цели, например, плагин Securitycheck Pro. Для сайтов на OpenCart существует модуль «Резервное копирование Backup для OpenCart».

Резервные копии баз данных в BulletProof Security можно создавать вручную и автоматически
Резервные копии баз данных в BulletProof Security можно создавать вручную и автоматически

Владельцы сайтов на Joomla! могут использовать для этой цели, например, плагин Securitycheck Pro. Для сайтов на OpenCart существует модуль «Резервное копирование Backup для OpenCart».

6. Сохранять информацию о подозрительных событиях

Плагины для комплексной защиты сайтов ведут журнал аудита: дают администраторам возможность просматривать все события на сайте. Вот что можно узнать с помощью All-In-One Security:

  • активность по имени пользователя, IP-адресу, времени входа и выхода из системы; 

  • список пользователей, которые во время аудита находятся в системе; 

  • список всех неудачных попыток входа; 

  • данные о добавлении, удалении, обновлении, активации или деактивации других плагинов без ведома администратора.

Но не все плагины оповещают о проблемах на сайте. В премиум-версии All-In-One Security такая функция есть: плагин присылает администратору e-mail в течение 24 часов с момента появления угрозы. 

А вот Defender Security только сохраняет информацию в логах и выводит оповещения в панели управления. Если на сайте появятся изменения, которых вы не вносили, или он совсем перестанет работать, придётся просматривать журнал плагина вручную. Лучше делать это раз в неделю. Даже если внешне на сайте не происходит ничего подозрительного: «под капотом» могут обнаружиться проблемы.

Wordfence Security проверяет основные файлы, темы и плагины на наличие вредоносных программ, бэкдоров, SEO-спама, вредоносных перенаправлений и инъекций кода. Для этого он сравнивает файлы, темы и плагины с теми, которые находится в репозитории WordPress.org, проверяет их целостность и сообщает о любых изменениях в панели администратора. Данные о внедрении вредоносного ПО обновляются в течение 30 минут, а в премиум-версии — в режиме реального времени.

Резервные копии баз данных в BulletProof Security можно создавать вручную и автоматически
Резервные копии баз данных в BulletProof Security можно создавать вручную и автоматически
Журнал безопасности плагина BulletProof Security
Журнал безопасности плагина BulletProof Security

Из плагинов для Joomla! журнал безопасности есть, например, у Securitycheck Pro: владелец сайта может просматривать его в панели администрирования или экспортировать в формате .csv. Из модулей OpenCart с этой задачей справится «Отчет об изменении файлов сайта».

Как выбрать плагины для защиты сайта на разных CMS

Чтобы выбрать удобный и подходящий именно вам инструмент, убедитесь, что плагин соответствует этим трём критериям: 

  1. Нужные вам функции в бесплатной версии. Большинство плагинов с высокими рейтингами зарубежные. У российских пользователей могут возникнуть проблемы с оплатой расширенных тарифов.    

  2. База вредоносных файлов и элементов кода регулярно обновляется. Новые угрозы появляются постоянно. Важно, чтобы плагин умел их распознавать. Лучше выбирать плагины с рейтингом в пять звёзд в магазине плагинов Wordpress — их разработчики обычно ведут список известных эксплойтов, быстро создают и выпускают средства защиты, а затем добавляют информацию о них в базу данных плагинов. Так плагины смогут отслеживать угрозы, которые появились недавно, и бороться с ними.

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

Ниже — подборка плагинов с высоким рейтингом для популярных CMS. А если вам не хватит нашей справки, переходите в документацию конкретного плагина — там их функции описаны ещё подробнее.

5 плагинов с высоким рейтингом на wordpress.org:

4 плагина с высоким рейтингом на joomla.org:

Как защитить сайт на OpenCart

Для этой CMS не существует комплексных плагинов безопасности. Есть только отдельные решения под конкретную проблему. Чтобы защитить сайт от большинства распространённых угроз, установите сразу несколько плагинов. Для удобства воспользуйтесь списком из блока «Что умеют плагины для защиты сайта».

Примеры модулей безопасности в магазине OpenCart
Примеры модулей безопасности в магазине OpenCart

Как защитить сайт на 1С-Bitrix

В CMS «1С-Битрикс: Управление сайтом» уже встроен модуль «Проактивная защита». В нём есть необходимые функции для безопасности сайта, устанавливать дополнительные плагины не нужно.

Чтобы понять, от каких угроз важнее всего защитить сайт, лучше провести комплексный аудит безопасности. Сделать это можно с помощью бесплатных или платных программ-сканеров, таких как Detectify или H-X Scanner. А можно заказать аудит у компаний, которые специализируются на этом, смогут расшифровать для вас результаты и дать конкретные рекомендации. Затем нужно выбрать плагин, у которого есть все или большинство нужных вам функций.

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

А как вы защищаете свой сайт и делаете ли это вообще? Делитесь в комментариях!

Комментарии (1)


  1. sergeytolkachyov
    13.06.2024 10:37

    Что касается Joomla - почти перечисленные задачи по защите должны решаться не средствами PHP, а средствами сервера, ещё до начала работы собственно PHP.

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

    Третий способ защиты от спама и ботов — капча.

    Капча умными ботами прекрасно пробивается. Тем более, что уже больше полугода активно нанимают людей на ботов, а может и ещё раньше начали. От спам регистраций помогает бесплатный компонент отечественной разработки "Жимолость". А одной из самых защищённых от ботов форм обратной связи показал себя плагин Radical Form.

    Двухфакторная аутентификация в Joomla есть из коробки.

    Защищать и восстанавливать важные файлы

    В Joomla 4 и Joomla 5 есть встроенный функционал переустановки файлов ядра. Идём в Система - Обновление - Joomla, нажимаем проверить обновления:

    Если обновлений не найдено, то появится кнопка "Переустановить файлы".

    В Joomla 5.1 в систему обновлений внедрён TUF (The Update Framework), что обеспечивает получение файлов обновлений из надёжного доверенного источника.

    Также в Joomla 4+ есть штатный плагин HTTP Headers, который позволяет настроить политики CORS и сделать сайт безопаснее. На Хабре был перевод статьи в двух частях:

    1. Управление заголовками HTTP в Joomla 4 (часть 1)

    2. Управление заголовками HTTP в Joomla 4 (часть 2)

    Для защиты входа в админку Joomla так же не нужно ставить кучу плагинов. Читаем статью Как изменить название папки administrator в Joomla?

     Сохранять информацию о подозрительных событиях

    В Joomla это коробочный функционал. Также есть логи сервера.