Безопасность сайта на WordPress: базовые правила защиты
Приветствую вас, друзья! Очень часто слышу от владельцев небольших сайтов: «Да кому нужен мой блог, кто его будет взламывать?». К сожалению, взламывают не только крупные порталы. Большинство атак автоматические: боты круглосуточно перебирают тысячи сайтов подряд, ищут устаревшие плагины, слабые пароли и открытые уязвимости. Им неважно, сколько у вас посетителей, — им нужен сервер, на котором можно разместить спам-ссылки, фишинговые страницы или вредоносный код. WordPress — самая популярная система управления сайтами, поэтому и внимания к ней у злоумышленников больше всего. Но сам по себе движок достаточно надёжен: проблемы почти всегда возникают из-за небрежности. Давайте разберём базовые правила, которые закрывают основную часть рисков.
Откуда берутся взломы
Чтобы защищаться осмысленно, нужно понимать, как обычно происходит взлом. Основные пути проникновения такие:
- Уязвимые плагины и темы. Самая частая причина. Разработчик допустил ошибку, её нашли и опубликовали, а владелец сайта месяцами не ставит обновление.
- Слабые пароли. Логин admin и пароль вроде qwerty123 подбираются автоматически за минуты.
- «Нулёные» темы и плагины. Платные расширения, скачанные бесплатно с сомнительных сайтов. В них нередко вшит вредоносный код или скрытые ссылки.
- Заражённый компьютер владельца. Троян крадёт сохранённые пароли от FTP и админки.
- Проблемы на хостинге. Неправильные права доступа к файлам, соседние заражённые сайты на одном аккаунте.
Обратите внимание: почти всё из этого списка зависит от вас. Поэтому безопасность — это прежде всего набор привычек, а не какой-то один волшебный плагин.
Обновления: самое скучное и самое важное правило
Если бы мне нужно было оставить только один совет из всей статьи, я бы оставил этот: своевременно обновляйте ядро WordPress, темы и плагины. Большинство обновлений закрывают найденные уязвимости, и с момента публикации исправления боты начинают массово искать сайты, где оно не установлено.
- Включите автоматические обновления для минорных версий ядра. Они выходят для исправления ошибок и безопасности и почти никогда ничего не ломают.
- Проверяйте обновления плагинов хотя бы раз в неделю. Для проверенных плагинов можно включить автообновление прямо в списке плагинов.
- Перед крупными обновлениями делайте резервную копию. Особенно если обновляется тема или сложный плагин вроде конструктора страниц или магазина.
- Удаляйте, а не просто отключайте. Деактивированный плагин по-прежнему лежит на сервере, и его уязвимые файлы могут быть доступны извне. То же касается неиспользуемых тем — оставьте одну активную и одну стандартную на случай отката.
- Следите за заброшенными расширениями. Если плагин не обновлялся несколько лет, ищите замену.
Не забывайте и про версию PHP на хостинге. Устаревшие версии перестают получать исправления безопасности, а новые ещё и работают быстрее. Кстати, меньше плагинов — это ещё и более быстрый сайт, об этом я подробно писал в статье как ускорить загрузку сайта.
Практический совет: устанавливайте темы и плагины только из официального каталога WordPress или с сайтов самих разработчиков. Экономия на лицензии «нулёного» плагина может обернуться неделями чистки сайта и потерей позиций в поиске.
Пароли, логины и защита входа в админку
Страница входа wp-login.php есть на каждом сайте на WordPress, и боты это прекрасно знают. На неё постоянно идут попытки подбора пароля. Вот что стоит сделать:
- Не используйте логин admin. Если он у вас есть, создайте нового администратора с другим именем, войдите под ним и удалите старую учётную запись, передав записи новому пользователю.
- Сложный уникальный пароль. Не менее 14–16 символов, буквы разного регистра, цифры, спецсимволы. И главное — уникальный: не тот же, что от почты или соцсетей. Храните пароли в менеджере паролей, а не в текстовом файле на рабочем столе.
- Двухфакторная аутентификация. Даже если пароль утёк, без кода из приложения на телефоне войти не получится. Включается бесплатными плагинами за несколько минут.
- Ограничение попыток входа. После нескольких неудачных попыток IP-адрес временно блокируется. Это резко снижает эффективность перебора.
- Скрывайте имена пользователей. WordPress может показывать логины авторов в адресах архивов. Используйте для публичного отображения никнейм, отличный от логина.
- Раздавайте минимальные права. Копирайтеру достаточно роли «Автор» или «Редактор», а не администратора. Когда сотрудничество закончилось, удаляйте учётную запись.
Отдельно про работу с подрядчиками. Если вы нанимали фрилансера для доработок, после завершения работ смените пароли от админки, хостинга и FTP. Это не про недоверие, а про элементарную гигиену: чем меньше людей знает актуальные доступы, тем лучше. Как вообще грамотно выстраивать отношения с исполнителями, я разбирал в статье о договоре и предоплате на фрилансе.
Резервные копии: ваша страховка
Никакая защита не даёт стопроцентной гарантии. Поэтому главный вопрос звучит не «как сделать, чтобы никогда не взломали», а «как быстро восстановиться, если что-то случится». Ответ — регулярные резервные копии.
Правильная система бэкапов отвечает трём требованиям:
- Копируется всё. И файлы сайта, и база данных. Без базы у вас не будет ни статей, ни настроек.
- Копии хранятся отдельно. Бэкап на том же сервере, что и сайт, может быть уничтожен или заражён вместе с ним. Храните копии в облачном хранилище или хотя бы скачивайте на свой компьютер.
- Регулярность соответствует частоте изменений. Для блога, который обновляется пару раз в неделю, достаточно еженедельных копий. Для магазина с ежедневными заказами — ежедневных.
Многие хостинги делают автоматические копии, но не полагайтесь только на них: уточните, как долго они хранятся и сколько стоит восстановление. И главное — хотя бы раз попробуйте восстановить сайт из бэкапа, например на тестовом поддомене. Копия, из которой невозможно восстановиться, бесполезна.
Настройки сервера и файлов
Есть несколько технических мер, которые делаются один раз и заметно повышают защищённость. Если вы не уверены в своих силах, попросите техподдержку хостинга — обычно они помогают с такими вещами.
| Мера | Что даёт | Сложность |
|---|---|---|
| SSL-сертификат и переход на HTTPS | Шифрование данных, в том числе паролей при входе | Низкая, бесплатный сертификат выпускается в панели хостинга |
| Запрет редактирования файлов из админки | Взломщик, попавший в админку, не сможет сразу изменить код темы | Низкая, одна строка в wp-config.php |
| Правильные права доступа | Файлы нельзя изменить посторонним процессам | Средняя, обычно 644 для файлов и 755 для папок |
| Защита wp-config.php | Файл с доступами к базе недоступен извне | Средняя, настройка на сервере |
| Отключение XML-RPC, если не используется | Закрывает один из каналов для перебора паролей | Низкая, плагином или настройкой |
| Смена префикса таблиц базы данных | Немного усложняет автоматические атаки | Проще всего сделать при установке |
Если вы только выбираете, где размещать сайт, обращайте внимание на то, как хостинг подходит к безопасности: есть ли изоляция сайтов, автоматические бэкапы, антивирусная проверка, защита от DDoS-атак. Об этом я рассказывал в статье про выбор хостинга и домена.
Плагины безопасности и мониторинг
Специализированные плагины безопасности объединяют многие функции в одном месте: файрвол, сканирование файлов на вредоносный код, ограничение попыток входа, уведомления о подозрительной активности. Популярные решения — Wordfence, Solid Security, All-In-One Security. Достаточно одного такого плагина: несколько одновременно будут конфликтовать и замедлять сайт.
Помимо плагина, полезно настроить внешний мониторинг:
- Проверка доступности сайта. Бесплатные сервисы присылают уведомление, если сайт перестал открываться.
- Яндекс Вебмастер и Google Search Console. Они сообщают, если на сайте обнаружен вредоносный код или признаки взлома.
- Уведомления о входе в админку. Если вы получили письмо о входе, которого не совершали, — это повод срочно действовать.
Что делать, если сайт всё-таки взломали
Признаки взлома бывают разными: сайт перенаправляет посетителей на сторонние ресурсы, в поиске появляются странные страницы с чужими товарами, хостинг блокирует аккаунт за рассылку спама, антивирус браузера предупреждает об опасности. Действуйте по порядку:
- Не паникуйте и не удаляйте всё подряд — вы можете уничтожить следы, по которым можно найти уязвимость.
- Смените все пароли: от админки, хостинга, FTP, базы данных, почты.
- Обратитесь в поддержку хостинга — они могут подсказать, какие файлы изменены.
- Восстановите сайт из чистой резервной копии, сделанной до заражения, если она есть.
- Обновите всё до актуальных версий и удалите лишние плагины и темы.
- Просканируйте сайт плагином безопасности, проверьте появление новых администраторов.
- Если вредоносный код обнаружили поисковики, после очистки отправьте сайт на перепроверку через панели вебмастеров.
Если справиться самостоятельно не получается, лучше привлечь специалиста по лечению сайтов, чем неделями терять трафик.
Итог: безопасность как привычка
Защита сайта на WordPress не требует глубоких технических знаний. Большинство угроз закрываются простыми регулярными действиями: обновлять ядро, темы и плагины, использовать сложные уникальные пароли и двухфакторную аутентификацию, раздавать минимальные права, ставить расширения только из надёжных источников и хранить резервные копии отдельно от сайта. Выделите полчаса в неделю на обслуживание, и ваш сайт перестанет быть лёгкой добычей для ботов. А если неприятность всё-таки случится, свежий бэкап позволит вернуть всё на место за считанные часы.