Защитить блог на WordPress от базовых угроз — задача одного вечера и одной привычки, а не отдельного администратора. Подавляющее большинство взломов блогов не имеют отношения к вам лично: это автоматический перебор паролей и поиск сайтов с устаревшим плагином, в котором известна дыра. Робот не выбирает жертву, он идёт по списку. Значит, достаточно не быть самым лёгким сайтом в этом списке: сложный пароль и второй фактор на входе, ограничение попыток, обновления в срок, копии, которые лежат не на том же сервере, и правильные права на файлы. Ниже — что именно сделать, в каком порядке, и что делать, если сайт уже показывает чужую рекламу. Без страшилок и без «поставьте плагин безопасности и забудьте».
Вход: пароль, второй фактор и ограничение попыток
Первое, с чего начинается защита: у администратора не должно быть логина admin и пароля, который вы помните наизусть. Логин смените, создав нового администратора и удалив старого с передачей записей; пароль — 16 знаков и больше, из менеджера паролей, нигде больше не использованный. Второе — двухфакторный вход: плагин Two-Factor от команды WordPress или WP 2FA, код из приложения на телефоне. После этого перебор паролей становится бесполезным: даже угаданный пароль без кода не пускает. Третье — ограничить число попыток: плагин Limit Login Attempts Reloaded блокирует адрес после нескольких неудачных попыток и показывает, сколько раз в сутки к вам ломятся. Обычный блог видит там десятки попыток в день — это и есть та самая автоматика.
Ещё два действия на пять минут. В wp-config.php добавьте строку define(‘DISALLOW_FILE_EDIT’, true) — она убирает встроенный редактор файлов темы и плагинов из админки: если кто-то всё же попадёт внутрь, он не сможет вписать код прямо через браузер. И отключите XML-RPC, если не пользуетесь мобильным приложением WordPress и старыми клиентами: этот интерфейс позволяет перебирать пароли сотнями за один запрос, а нужен он единицам. Отключается плагином Disable XML-RPC или в настройках плагина безопасности.

Обновления и чистка: где на самом деле дыры
Ядро WordPress ломают редко; ломают плагины и темы, причём обычно через уязвимость, которая уже закрыта обновлением месяц назад. Поэтому правило одно: обновляться в течение недели после выхода версии. Для ядра включите автообновления — они стоят по умолчанию для мелких версий; для плагинов у каждого в списке есть ссылка «Включить автообновления», и для проверенных плагинов её стоит нажать. Перед крупным обновлением темы или конструктора делайте копию: откат по копии занимает пять минут, а починка сломанной вёрстки — вечер. Раз в месяц открывайте «Плагины» и удаляйте то, что выключено: неактивный плагин не работает, но его файлы лежат на сервере, и дыра в них доступна.
- Плагины ставить только из каталога WordPress или у разработчика напрямую; «бесплатные» версии платных тем с чужих сайтов почти всегда содержат посторонний код.
- Неиспользуемые темы удалить, оставив одну стандартную как запасную.
- Плагин, который не обновлялся два года, — заменить аналогом.
- Версию PHP на хостинге держать актуальной: 8.2 или 8.3 в панели Beget, Timeweb, reg.ru переключается в один клик.
- Пароль от базы и от FTP — отдельные, не совпадающие с паролем администратора.
Копии как последняя линия и права на файлы
Копии хостинга — это не ваши копии. Beget и Timeweb хранят их несколько дней и восстанавливают по запросу, но если взлом заметили через две недели, чистой копии у хостинга уже нет. Своя копия делается плагином UpdraftPlus: расписание — база ежедневно, файлы раз в неделю, хранение — в облаке, а не в папке на том же сервере. Из бесплатных хранилищ подходит Google Диск или любой S3-совместимый бакет у российских облаков; Яндекс Диск подключается через WebDAV в платной версии или отдельными плагинами. Раз в квартал проверяйте, что копия разворачивается: скачайте архив, поставьте на тестовый поддомен, убедитесь, что сайт открывается. Копия, которую никто не восстанавливал, существует только на бумаге.
Права на файлы задают, кто может их менять. Норма для WordPress на обычном хостинге: папки — 755, файлы — 644, wp-config.php — 600 или 640, в зависимости от того, как настроен сервер. Если у папки стоит 777, писать в неё может любой процесс на сервере, и это первое, что проверяют роботы. Проверить и исправить права можно в файловом менеджере панели хостинга или через FTP-клиент: выделить папку, выбрать «Права доступа», проставить числа рекурсивно. В папке wp-content/uploads не должно лежать файлов .php — проверьте это поиском в файловом менеджере; сайт кладёт туда только картинки и документы.
Наблюдение: как узнать о проблеме раньше читателей
Взлом чаще всего замечают по косвенным признакам: сайт выпал из выдачи, в Яндекс Вебмастере появилось сообщение в разделе «Безопасность и нарушения», Google Search Console пишет о «Проблемах безопасности», читатели жалуются на рекламу казино, которой вы не видите. Чтобы узнавать раньше, включите уведомления в обоих сервисах и раз в неделю смотрите три места: список пользователей (не появился ли администратор, которого вы не создавали), список плагинов (нет ли незнакомых) и журнал входов из Simple History или WP Activity Log. Сканер файлов в Wordfence или в антивирусе хостинга — ImunifyAV есть у Beget и у большинства других — находит подменённые файлы ядра и лишние скрипты.
Взломанный блог почти всегда взломан по тем же трём причинам: слабый пароль, старый плагин, нет копии.
Если сайт уже взломали: порядок действий
- Закрыть сайт на обслуживание и сменить все пароли: администратора, базы, FTP, панели хостинга, почты, к которой привязан аккаунт.
- Проверить список пользователей и удалить чужих администраторов; отозвать все пароли приложений.
- Восстановить сайт из копии, сделанной до взлома, — это быстрее и надёжнее ручной чистки.
- Если чистой копии нет — запустить сканер хостинга и Wordfence, заменить ядро, тему и плагины свежими версиями из официальных источников, проверить wp-content/uploads на посторонние файлы.
- Обновить всё, поставить второй фактор и лимит попыток, если их не было, сменить ключи в wp-config.php.
- Запросить перепроверку в Вебмастере и Search Console и следить за выдачей две недели.
Всё описанное автор-одиночка делает сам за один вечер, а дальше тратит на безопасность полчаса в месяц: обновления, взгляд на пользователей, проверка копии. Если сайт для вас — источник дохода и хочется, чтобы за обновлениями, копиями и сканером следил кто-то другой, такое обслуживание берёт на себя агентство «Креатифф» — вместе с настройкой самого сайта, чтобы чинить пришлось как можно реже.
Вопрос — ответ
Что сделать с логином и паролем администратора WordPress?
Смените логин admin: создайте нового администратора и удалите старого с передачей записей. Пароль должен быть 16 знаков и больше, из менеджера паролей и нигде больше не использованный.
Как защититься от перебора паролей?
Включите двухфакторный вход с кодом из приложения на телефоне и ограничьте число попыток, например плагином Limit Login Attempts Reloaded. Обычный блог видит там десятки попыток в день.
Зачем отключать редактор файлов и XML-RPC?
Строка define(‘DISALLOW_FILE_EDIT’, true) в wp-config.php убирает редактор файлов из админки. XML-RPC отключают, если не пользуетесь мобильным приложением: он позволяет перебирать пароли сотнями за один запрос.
Как часто обновлять WordPress и плагины?
Обновляйтесь в течение недели после выхода версии. Раз в месяц удаляйте выключенные плагины: неактивный плагин не работает, но его файлы лежат на сервере, и дыра в них доступна.
Как делать свою копию блога?
Копии хостинга хранятся несколько дней, поэтому нужна своя. Настройте UpdraftPlus: база ежедневно, файлы раз в неделю, хранение в облаке, а не на том же сервере. Раз в квартал проверяйте, что копия разворачивается.
