База знаний

Инструкции и ответы на вопросы о хостинге, работе сайтов и приложений

Безопасность WordPress

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

Как происходит взлом

Чаще других взламывают сайты на популярных CMS (WordPress, Joomla!, OpenCart, Drupal). Наиболее подвержены заражению сайты, использующие:

  • Старые версии CMS;
  • Необновленные или загруженные из неизвестных источников плагины, темы (шаблоны) и расширения;
  • Слабые пароли к административной панели.

Для примера, в феврале 2020 года в плагине ThemeGrill Demo Importer для WordPress была обнаружена уязвимость, позволяющая полностью удалить все статьи и записи с сайта простым GET-запросом к одному из его файлов. Разработчик быстро исправил уязвимость, но она доставила неудобства многим пользователям, которые не успели вовремя обновить плагин.

В этой статье рассмотрим, как можно обезопасить сайт на CMS WordPress.

Методы защиты

Внимание! Перед внесением изменений на сайте обязательно сделайте резервную копию.

Методов защиты сайта множество, большинство из которых выполнимо с помощью плагина All in One WP Security and Firewall:

Сокрытие скрипта авторизации

Применяется в разделе плагина «WP Security» → «Защита от брутфорс-атак», вкладка «Переименовать страницу логина».

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

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

~/domains/имя_сайта/public_html/wp-content/plugins/all-in-one-wp-security-and-firewall_1

После этого вы сможете авторизоваться по стандартной ссылке, вернуть имя для папки плагина и изменить его настройки.

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

Чтобы отключить это перенаправление, если оно вызовет конфликты с кастомными формами авторизации, обратитесь в техническую поддержку.

Защита файла xmlrpc.php

Файл xmlrpc.php используется для удаленного управления CMS WordPress или обмена данными с ней некоторыми плагинами.

В большинстве случаев этот файл никак не используется сайтами, но открывает массу возможностей злоумышленникам. Так, с помощью POST-запроса к нему, могут быть внедрены ссылки в статьи, приводящие к перенаправлению на сторонние сайты.

Заблокировать доступ к этому файлу можно в разделе «Файрволл» → «Защита от уязвимостей WordPress XMLRPC и уведомлений» , поставив галочку как на скриншоте:

Или с помощью директив в файле .htaccess сайта:

<Files xmlrpc.php>
Order Deny,Allow
Deny from all
Allow from X.X.X.X
</Files>

Вместо X.X.X.X укажите IP-адреса, которым необходимо сохранить доступ к файлу.

Смена префикса в базе данных

По умолчанию в CMS WordPress таблицы используют префикс «wp_» . Зная префикс, злоумышленник может попробовать изменить содержимое той или иной таблицы. Плагин позволяет изменить префиксы автоматически в разделе «WP Security» → «Защита базы данных», вкладка «Префикс таблиц БД».

Удаление сведений о версии CMS

Чтобы злоумышленник заранее не знал о том, какие именно уязвимости могут присутствовать в сайте, скройте информацию о версии CMS. Выполняется в разделе «WP Security» → «Настройки» → «Информация о версии WP».

Это не все функции плагина AIO WP Security and Firewall, которые могут быть полезны в защите от взлома. Рекомендуем ознакомиться и с другими его возможностями самостоятельно.

Двухфакторная аутентификация

Дополнительной защитой выступит двухфакторная авторизация. Поможет с этим плагин Google Authenticator:

Чтобы авторизоваться на сайте, помимо логина и пароля будет запрошен код из мобильного приложения Google Authenticator — его потребуется установить отдельно (доступно в App Store и Google Play).

Для связки с сайтом укажите в мобильном приложении ключ из строки Secret или отсканируйте QR-код по кнопке «Show/Hide QR code».

Двухфакторную аутентификацию можно реализовать и средствами Панели управления, поставив галочку в Файловом менеджере напротив папки wp-admin и нажав на значок щита в ряде операционных кнопок. После указания логина и пароля в открывшемся окне, для авторизации потребуются обе пары логин/пароль — те что вы используете обычно и те, что указали в Файловом менеджере.

Защита от роботов

Роботы умеют подбирать пароли, массово регистрироваться на сайтах, оставлять СПАМ-комментарии, рассылать вредоносные ссылки через формы обратной связи.

Защититься от них поможет модуль CAPTCHA, например, reCAPTCHA v2 или v3 от Google и приведем в пример вспомогательный плагин Advanced noCAPTCHA & invisible Captcha:

Получите специальные ключи в личном кабинете на сервисе Google для reCAPTCHA интересующей вас версии:

Версия v2 выводит на форме вашего сайта поле, где посетителю нужно поставить галочку или выбрать картинки по запросу, а версия v3 — невидимая, анализирует совокупность действий посетителя.

Полученные ключи введите в разделе «Настройки» → «Advanced noCAPTCHA & invisible Captcha» и выберите формы, которые хотите защитить:

Аналогичную функцию можно и реализовать плагином AIO WP Security and Firewall, речь о котором шла выше, в разделе «Защита от брутфорс-атак», вкладка «CAPTCHA на логин». Однако, там доступна только версия reCAPTCHA v2.

Обновления

Доступные обновления CMS и расширений отображены в разделе «Консоль» → «Обновления»:

Если для ядра CMS появится обновление, вы увидите это уведомление на главной странице консоли.

С помощью нескольких строк кода можно настроить автоматическое обновление компонентов. Но обновлять WordPress автоматически не рекомендуем, так как это может привести к неожиданной ошибке на сайте с кодом 500.

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

Советуем включить еженедельную проверку файлов инструментом ХакСкан через раздел «Безопасность» → «ХакСкан». Это позволит оперативно отреагировать на заражение, если оно все же произойдет.

Была ли эта инструкция полезной?