Перейти к содержимому
>_ITDITDПлатформа веб-безопасности

По фреймворкам

Безопасность WordPress — практическая референс-инструкция по хардненингу продакшна

Референс по хардненингу продакшна WordPress: приоритетный чек-лист плюс обновления, управление плагинами/темами, 2FA администратора, снижение открытости админки, wp-config и секреты, файлы и резервные копии, с чек-листом самопроверки. Защитно, без шагов атаки.

Опубликовано 2026-07-02 Обновлено 2026-07-02 7 мин чтения

Для: всех, кто ведёт сайт на WordPress. Здесь нет шагов атаки — это рабочий референс по хардненингу: приоритетный чек-лист, руководство по областям и самопроверка. Общую по фреймворкам картину смотрите на хабе безопасности по фреймворкам.

Приоритетный чек-лист хардненинга

Выполняйте эту таблицу сверху вниз. P0 — высший приоритет, P1 — самый частый источник инцидентов, P2 — постоянная операционная гигиена.

P0 ── Предпосылка (сначала это)

Автообновления / удаление неиспользуемых плагинов и тем / надёжный администратор + 2FA

P1 ── Главный источник инцидентов

Минимизация плагинов / снижение открытости админки / восстановимые резервные копии

P2 ── Операционная гигиена

wp-config и секреты / права на файлы / HTTPS, заголовки, свежесть PHP/зависимостей

Укрепляйте от фундамента вверх: P0 (предпосылка) → P1 (главный источник инцидентов) → P2 (операционная гигиена).
ПриоритетМераКонкретика (WordPress)
P0АвтообновленияВключите автообновления для ядра, плагинов, тем. Делайте резервную копию перед мажорными обновлениями
P0Удалять неиспользуемоеУдаляйте неиспользуемые плагины/темы, не просто отключайте (оставшиеся файлы всё ещё цель)
P0Надёжный администратор + 2FAНадёжный пароль + двухфакторная. Избегайте имени пользователя admin; роли по наименьшим привилегиям
P1Минимизация плагиновПеред установкой проверяйте частоту обновлений, распространённость, известные CVE. Держите число низким
P1Защита входаОграничение числа попыток входа. Ограничьте открытость wp-admin/wp-login.php
P1Снижение открытостиОграничьте xmlrpc.php, если не используется. Подавите перечисление пользователей через REST API
P1Резервные копииОфлайн/раздельные восстановимые резервные копии + тесты восстановления + обнаружение подмены
P2wp-config и секретыЗадайте ключи/соли аутентификации, защитите wp-config.php, отключите вывод отладки в продакшне
P2Права на файлы~644 файлы / 755 каталоги. Запретите выполнение PHP в каталоге загрузок
P2HTTPS/заголовки/обновленияПринудительный HTTPS, HSTS и т.д. Держите PHP/БД на поддерживаемых версиях

1. Обновления (главная защита)

Большинство атак на WordPress — это автоматизированные инструменты, массово бьющие по опубликованной известной уязвимости (CVE). Поэтому скорость обновления — ваша самая большая защита.

  • Включите автообновления для ядра, плагинов и тем — закрывайте опубликованные дыры до того, как по ним ударят.
  • Для важных сайтов проверяйте мажорные обновления в staging и делайте резервную копию перед обновлением.
  • Пропущенное обновление — открытый вход для автоматизированных атак. Не откладывайте «на потом».

2. Плагины и темы (поверхность атаки)

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

  • Всё неиспользуемое удаляйте, а не отключайте (отключённые файлы всё ещё могут быть целью).
  • Перед установкой проверяйте частоту обновлений, распространённость, дату последнего обновления и известные CVE. Избегайте заброшенных.
  • Проверить CVE плагинов можно через поиск CVE/KEV. Меньше расширений — меньше ответственности за обновления и меньше поверхность атаки.

3. Учётные записи администратора и аутентификация

Большинство захватов — это перебор против слабых/переиспользуемых учётных записей администратора или переиспользование утёкших паролей.

Частое (опасное)

  • имя пользователя admin + слабый пароль + без 2FA
  • все являются администраторами (нет разделения ролей)
  • неограниченное число попыток входа
  • wp-admin доступен откуда угодно

Правильно

  • надёжный пароль + 2FA, имя пользователя, отличное от admin
  • роли по наименьшим привилегиям (используйте редактора/автора уместно)
  • ограничение числа попыток входа (сдерживает перебор)
  • где возможно, ограничьте, откуда можно достучаться до wp-admin/wp-login.php

О выборе 2FA см. что такое 2FA; о маршруте, нацеленном на администраторов, см. что такое фишинг.

4. Снижение открытости (поверхность администрирования и раскрытие информации)

Атакующие сначала ищут «пригодный вход». Отсекайте неиспользуемые функции и ненужное раскрытие информации.

  • Добавьте ограничение числа попыток входа, чтобы снизить эффективность перебора.
  • Ограничьте xmlrpc.php, если он не используется (он может стать входом для усиления перебора и потока запросов).
  • Подавите перечисление пользователей через REST API (не допускайте раскрытия имён администраторов через ?author= и т.п.).
  • Отключите листинг каталогов и сократите ненужное раскрытие версий.
  • Отключите редактирование файлов из админки (DISALLOW_FILE_EDIT), чтобы усложнить подмену после проникновения.

5. wp-config и секреты (P2)

  • Задайте уникальные ключи/соли аутентификации и защитите wp-config.php соответствующими правами (никогда не делайте доступным для чтения всем).
  • Держите секреты вроде учётных данных БД вне публичной поверхности. Не оставляйте резервные копии или экспорты в публичном каталоге (→ не храните секреты в публичных каталогах).
  • В продакшне отключите вывод отладки (WP_DEBUG_DISPLAY выключен). Не раскрывайте внутренности через ошибки.

6. Файлы и загрузки (P2)

  • Права на файлы примерно 644 файлы / 755 каталоги, и строже для wp-config.php. Никогда не оставляйте что-либо доступным для записи всем.
  • Не допускайте выполнения PHP в каталоге загрузок (защита от веб-шелла). Проверяйте тип и размер загрузок.
  • Используйте обнаружение подмены (мониторинг изменений файлов), чтобы рано замечать изменения после проникновения.

7. HTTPS, заголовки, резервные копии (P2)

  • Принудительный HTTPS + HSTS. Устраните смешанный контент.
  • Добавьте заголовки безопасности (проверьте свой сайт через проверку заголовков безопасности).
  • Держите офлайн/неизменяемые резервные копии + тесты восстановления, чтобы вы могли восстановиться (→ основы резервных копий). Последняя линия против шифровальщиков и дефейса.

8. Хостинг и зависимости (P1–P2)

  • Держите PHP и базу данных на поддерживаемых версиях. Не оставляйте EOL-версии на месте.
  • Знайте статус патчей вашего хостинга (на общем хостинге это включает реакцию провайдера).
  • WAF — это дополнение; сначала укрепите фундамент (обновления, минимизация, аутентификация, резервные копии).

Проверка: действительно ли ваш WordPress укреплён?

Собрать — это ещё не конец; готово только тогда, когда вы проверили. Это защитные самопроверки против собственного сайта.

1

Секреты и конфигурация не открыты

На своём домене убедитесь, что /wp-config.php не возвращает своё содержимое и что резервные копии (.zip/.sql) или файлы типа .env нельзя получить по URL.
2

Имена администраторов и версии не утекают

Убедитесь, что ?author=1 и подобное не раскрывают имя пользователя администратора и что листинг каталогов отключён.
3

Защита входа и 2FA работают

Убедитесь, что ограничение числа попыток входа работает и у администраторов включена 2FA. Проверьте, что не осталось учётной записи admin.
4

Обновления, резервные копии, заголовки

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

Взгляд нашего сайта: управляйте «расширениями и заброшенностью», а не ядром

Для WordPress работает не эффектная конфигурация, а операционная дисциплина «не добавлять расширений сверх меры, не оставлять их без присмотра». Плагины удобны, но каждый добавляет ответственность продолжать обновлять. Центр тяжести — проработать таблицу выше сверху вниз: автоматизируйте обновления, держите плагины минимальными и защищайтесь надёжной аутентификацией и восстановимыми резервными копиями. Выглядит специфично для WordPress, но на деле это применённый универсальный фундамент (свежесть зависимостей, минимальная публичная поверхность, аутентификация, восстановление).

Читать дальше

FAQ

QЧто сделать в первую очередь, чтобы защитить WordPress?
A

Три пункта P0: (1) включите автообновления для ядра, плагинов и тем, чтобы опубликованные известные уязвимости (CVE) закрывались до того, как по ним ударят; (2) удаляйте неиспользуемые плагины/темы (не просто отключайте), чтобы срезать поверхность атаки; (3) защитите учётные записи администратора надёжным паролем и двухфакторной аутентификацией (2FA) и избегайте имени пользователя admin. Эти три пункта сами по себе останавливают большинство автоматизированных атак. Далее снижайте открытость админки и настройте резервные копии.

QСколько плагинов — уже слишком много?
A

Правило: «только необходимый минимум». Каждый плагин расширяет поверхность атаки и добавляет «ответственность продолжать обновлять». Перед установкой проверьте частоту обновлений, распространённость, дату последнего обновления и известные уязвимости; а всё, что не используется, удаляйте, а не отключайте (файлы отключённого плагина всё ещё могут быть целью уязвимости). То же и с темами.

QСтоит ли отключать xmlrpc.php?
A

Если вы им не пользуетесь, ограничить или отключить его рекомендуется. xmlrpc.php обслуживает удалённую публикацию и пингбэки, но он же может стать входом для усиления перебора и потока запросов. Если вы всё же используете функции, которым он нужен (некоторые интеграции приложений), ограничьте его только нужными методами или защитите ограничением по частоте/IP. Сначала проверьте, используете ли вы его на самом деле.

QДелает ли меня безопасным плагин безопасности?
A

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

QЧто абсолютный минимум?
A

(1) автообновления, (2) удаление неиспользуемых плагинов/тем, (3) надёжный пароль + 2FA для администраторов, (4) ограничение числа попыток входа и снижение открытости админки, (5) восстановимые офлайн-резервные копии + обнаружение подмены. Эти пять останавливают большинство автоматизированных атак. Подробности см. в чек-листе и разделах выше.