Skip to content
🔒 Безопасность WordPress в 2026 году: полное руководство по защите сайта

🔒 Безопасность WordPress в 2026 году: полное руководство по защите сайта

Сайт на WordPress взламывают не потому, что движок «дырявый». Его взламывают потому, что владелец отложил обновление плагина, поставил пароль admin123 и не закрыл xmlrpc.php. Автоматизированные боты сканируют интернет непрерывно.

Им неважно, продаете вы handmade-свечи или управляете интернет-магазином. Уязвимость найдут и используют. Брутфорс логинов, SQL-инъекции, заливка шелла через дырявый плагин, всё это идет круглосуточно.

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

💡 Быстрый обзор:

  • Поставьте файрвол: BBQ или Wordfence, первая линия обороны блокирует большинство атак ещё до WordPress.
  • Закройте типовые точки входа: xmlrpc.php, REST API для неавторизованных, листинг директорий, редактор файлов в админке.
  • Настройте автоматические обновления ядра, тем и плагинов. Устаревшая версия плагина, главный вектор взлома.
  • Сделайте бэкап, который хранится ВНЕ сервера. Без бэкапа восстановление после взлома, переустановка WordPress с нуля.
  • Включите двухфакторную аутентификацию для всех администраторов. Пароль можно подобрать, второй фактор, нет.

Куда бьют в первую очередь: типовые векторы атак

Большинство представляет хакера как человека перед терминалом, который вручную подбирает пароль к админке. Реальность скучнее: практически все атаки выполняют боты по скрипту. Они ищут известные уязвимости в плагинах и темах, стучатся в xmlrpc.php, сканируют /wp-content/uploads/ на наличие исполняемых PHP-файлов.

Главные векторы атак на WordPress:

  • Устаревшие плагины и темы. По отчётам Sucuri, около 40% взломанных сайтов на момент заражения использовали устаревшую версию CMS, плагина или темы. Разработчики закрывают дыры патчами, но только если вы эти патчи применили.

  • Слабые пароли. Брутфорс-атаки перебирают десятки тысяч комбинаций в минуту. Пароль из 6 символов без спецсимволов подбирается мгновенно.

  • Небезопасный хостинг. Дешёвый shared-хостинг экономит на изоляции аккаунтов: если соседний сайт на сервере взломан, атака может перекинуться на ваш.

  • Нулевые права на запись. Когда веб-сервер может писать в любой файл, залитый через дыру шелл получает полный контроль над сайтом.

Понимание этих векторов, половина защиты. Вторая половина, конкретные действия.

Уровень 1: быстрая защита, которую вы поставите за полчаса

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

Поставьте файрвол: BBQ Firewall

BBQ Firewall, плагин от Jeff Starr, работающий по принципу «поставил и забыл». Никаких настроек, никакого вмешательства в .htaccess или базу данных. Просто блокирует вредоносные URL-запросы до того, как они доберутся до WordPress: eval(), base64_decode, чрезмерно длинные строки, попытки инъекций.

Плагин весит меньше 10 КБ и не создаёт нагрузки. При этом ловит SQL-инъекции, XSS, заливку исполняемых файлов и атаки через «плохих» рефереров.

На практике BBQ часто ставят ПОВЕРХ Wordfence или Solid Security, они решают разные задачи и не конфликтуют. Файрвол уровня запросов плюс полноценный security-плагин дают эшелонированную защиту.

Включите двухфакторную аутентификацию

Пароль можно подобрать, перехватить или купить в дампе утекших баз. Второй фактор, одноразовый код из приложения-аутентификатора, ломает всю математику брутфорса.

Встроенной 2FA в WordPress нет. Самый простой путь, поставить Solid Security (бывший iThemes Security) или Wordfence. Оба включают 2FA в бесплатной версии. После активации зайдите в Security → Settings → Two-Factor Authentication и включите для роли Administrator.

Эти же плагины закрывают ещё десяток уязвимостей «из коробки»:

  • Solid Security: меняет URL входа (/wp-admin → ваш уникальный), ставит лимит попыток логина, сканирует файлы на изменения, блокирует IP после серии неудачных входов, проверяет плагины и темы на известные уязвимости.

  • Wordfence: Web Application Firewall с автоматически обновляемыми правилами, сканер вредоносного кода, защита от брутфорса, мониторинг трафика в реальном времени. Особенно хорош для чистки уже взломанного сайта: находит бэкдоры, изменённые файлы ядра, скрытый спам.

Достаточно ОДНОГО из них. Мы на своих проектах ставим Wordfence + BBQ: первый даёт WAF и сканер, второй отсекает мусорные запросы ещё на подлёте.

Выключите xmlrpc.php

XML-RPC, интерфейс для удалённой работы с WordPress через мобильные приложения и трекбэки. Сегодня он не нужен подавляющему большинству сайтов, но остаётся одной из самых атакуемых точек: через xmlrpc.php боты брутфорсят пароли и проводят DDoS-атаки.

Отключить можно двумя способами. Быстрый, через плагин: Solid Security делает это в один клик. Правильный, на уровне сервера, в .htaccess:

1<Files xmlrpc.php>
2Order Deny,Allow
3Deny from all
4</Files>

Добавьте этот блок в корневую .htaccess и забудьте про xmlrpc. Если пользуетесь мобильным приложением WordPress или внешними сервисами, которым нужен XML-RPC, сначала проверьте, работают ли они без него. В 2026 году альтернативы, REST API с аутентификацией, закрывают почти все сценарии.

Закройте листинг директорий

Откройте в браузере вашсайт.com/wp-content/uploads/. Если видите список файлов, у вас проблема. Листинг директорий показывает структуру сайта любому желаюному.

Решение: одна строка в .htaccess:

1Options -Indexes

Заодно добавьте пустой index.php в каждый подозрительный каталог: /wp-content/uploads/, темы, плагины без собственного index.php.

Отключите редактор файлов в админке

В WordPress из коробки можно править .php-файлы тем и плагинов прямо из админки: Appearance → Theme File Editor и Plugins → Plugin File Editor. Удобно, пока в админку не зашёл посторонний. Тогда это готовый инструмент для заливки шелла.

Добавьте в wp-config.php одну константу:

1define('DISALLOW_FILE_EDIT', true);

Всё. Редактор исчезает из админки. Для правки файлов используйте FTP/SFTP, неудобнее, но безопаснее.

Уровень 2: ручная закалка WordPress

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

Обновите соли безопасности

Соли, security keys и salts, восемь строк в wp-config.php, которые шифруют cookie аутентификации. Сменить их, значит мгновенно разлогинить всех, включая потенциального злоумышленника с украденной сессией.

Перейдите на api.wordpress.org/secret-key/1.1/salt/, скопируйте сгенерированный блок и замените им соответствующий участок в wp-config.php. Займёт минуту. Делайте при каждом подозрении на компрометацию.

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

По умолчанию все таблицы WordPress называются wp_posts, wp_users и wp_options. SQL-инъекции часто заточены именно под стандартный префикс.

При свежей установке укажите нестандартный префикс в wp-config.php:

1$table_prefix = 'wp83x_';

Для существующего сайта сменить сложнее: нужно переименовать таблицы в БД и обновить значения в usermeta и options. Без уверенного владения phpMyAdmin и SQL не беритесь, риск обрушить сайт слишком высок.

Перенесите wp-config.php выше корня

wp-config.php содержит пароль базы данных и ключи шифрования. Если веб-сервер по ошибке отдаст его как текст, такое случается при кривом апдейте PHP, злоумышленник получает всё.

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

Скройте версию WordPress

Генератор <meta name="generator" content="WordPress X.X.X"> в исходном коде страницы, подарок для ботов. Они сверяют версию с базой известных уязвимостей и бьют прицельно.

Уберите генератор через functions.php:

1// Удаляем мета-тег генератора WordPress из исходного кода страницы
2function no_generator() {
3 return '';
4}
5add_filter('the_generator', 'no_generator');

Функция no_generator() возвращает пустую строку вместо стандартного вывода версии. Фильтр the_generator перехватывает вывод мета-тега и всех его вариаций, для фидов, RSS и REST API.

Заодно удалите readme.html и liesmich.html из корня установки, они тоже выдают версию. После обновления WordPress эти файлы могут появиться снова, проверяйте раз в месяц.

Настройте HTTP Security Headers

HTTP-заголовки ответа сервера сообщают браузеру, как обращаться с контентом. Правильно настроенные security headers блокируют кликджекинг, XSS и подмену контента.

Минимальный набор для WordPress, добавьте эти строки в .htaccess:

1Header set X-Frame-Options "SAMEORIGIN"
2Header set X-Content-Type-Options "nosniff"
3Header set Referrer-Policy "strict-origin-when-cross-origin"
4Header set X-XSS-Protection "1; mode=block"

Плагин HTTP Headers позволяет сделать то же самое через админку, если не хотите трогать конфигурацию сервера.

Для продвинутой настройки используйте Content Security Policy. Но учтите: неправильный CSP ломает админку, подгрузку шрифтов и работу плагинов. Вводите постепенно, начиная с режима Content-Security-Policy-Report-Only.

Ограничьте файловые права

Права доступа, последний рубеж. Если злоумышленник залил файл, но не может его выполнить, атака захлебнулась.

Базовые правила:

  • Директории: 755, владелец читает, пишет, выполняет; группа и остальные читают и выполняют.
  • Файлы: 644, владелец читает и пишет, остальные только читают.
  • wp-config.php: 400, только владелец читает.
  • .htaccess: 444, только чтение для всех, если WordPress не правит его автоматически.

Категорически избегайте 777. Да, некоторые плагины просят 777 на wp-content/uploads/. Не давайте. 755 на папку и 644 на файлы внутри достаточно для загрузки медиафайлов.

Что делать, если сайт уже взломан

Взлом обнаруживается по-разному: редирект на казино, рассылка спама, баннер «Сайт может быть взломан» в выдаче Google, жалоба хостера. Порядок действий:

  • Немедленно смените все пароли: админка WordPress, FTP/SFTP, база данных, панель хостинга. Начните с последнего. Если хакер в панели хостинга, он просто создаст нового админа.

  • Восстановите сайт из бэкапа, сделанного ДО взлома. Свежий бэкап, сделанный после компрометации, с высокой вероятностью содержит бэкдор. Бэкапа нет, следующий шаг.

  • Установите Wordfence и запустите полное сканирование. Плагин найдёт изменённые файлы ядра, подозрительный код, скрытые бэкдоры. Удалите всё, что пометил сканер, затем замените ядро WordPress свежей копией: кнопка «Re-install» в Dashboard → Updates.

  • *Проверьте wp-content/uploads/ на наличие .php-файлов.* Там им не место. Любой .php в папке загрузок, почти гарантированно шелл.

Посмотрите видео выше, в нём разобраны типовые ошибки безопасности WordPress и способы их исправления, от слабых паролей до неправильных прав доступа.

  • Подключите внешний мониторинг. Sucuri, облачный сервис с WAF и командой реагирования. WAF фильтрует трафик до сервера. При взломе команда Sucuri чистит сайт за несколько часов. Цена, от $199 в год за базовый тариф с очисткой и мониторингом. Не бесплатно, но когда сайт приносит деньги, простой обходится дороже.

Обязательно зарегистрируйте сайт в Google Search Console. Если Google заметит вредоносный код, вы получите уведомление до того, как сайт выпадет из выдачи.

Защита от вымогателей: почему бэкап решает всё

person in black long sleeve shirt using macbook pro

Ransomware шифрует файлы сайта и требует выкуп. WordPress-сайты, частая цель: заказы, клиентская база, контент. Потерять всё за одну ночь, реальный сценарий без бэкапа.

Три правила:

  • Бэкап вне сервера. Облако или отдельный FTP. UpdraftPlus и Duplicator автоматизируют выгрузку.
  • Файрвол и сканер. Wordfence + BBQ отсекают заливку вредоносного файла на этапе запроса.
  • Источники только официальные. Каталог WordPress.org и сайты разработчиков с репутацией. Никаких «бесплатных» тем с торрентов.

Автоматический мониторинг целостности файлов

Серверная защита, не разовая акция. Соберите проверки в shell-скрипт на cron, раз в сутки, результат на почту:

1SITE_ROOT="/absolute/path/to/public_html"
2
3find "$SITE_ROOT" -mtime -1 -name "*.php" \
4 -printf '%TY-%Tm-%Td %TT\t%p\n' >> /tmp/file-changes.log
5
6find "$SITE_ROOT" -mtime -7 -name "*.php" \
7 | xargs grep -l -i &quot;eval\|base64_decode\|iframe\|file_get_contents&quot; \
8 >> /tmp/suspicious-code.log
9
10find "$SITE_ROOT/wp-content/uploads" -name "*.php" -print \
11 >> /tmp/php-in-uploads.log
12
13find /home -type d -perm 0777 >> /tmp/perms.log
14find /home -type f -perm 0777 >> /tmp/perms.log
15
16mailx -s "Webserver File Audit $(date +%F)" admin@example.com \
17 < /tmp/suspicious-code.log

Скрипт запускается раз в сутки через cron. Первый блок find -mtime -1 показывает PHP-файлы, менявшиеся за последние 24 часа, главный детектор вторжений. Второй ищет сигнатуры шеллов: eval, base64_decode, скрытые iframe. Третий ловит PHP в папке загрузок, легитимного PHP там не бывает. Четвёртый находит файлы и папки с правами 777. Результат уходит на почту. Профилактика ловит вторжение на ранней стадии, до того как Google заметит и забанит сайт в выдаче.

Sucuri: облачный файрвол, когда нет времени возиться

Принцип работы: трафик проходит через облачный прокси Sucuri с WAF, вредоносные запросы отсекаются до хостинга. Сайт грузится быстрее за счёт CDN. Ключевые возможности: WAF с сигнатурами реального времени, защита от DDoS, автоочистка от malware.

Тарифы от $199 в год. Бесплатной версии нет, но плагин-сканер Sucuri проверяет файлы на изменения без WAF. Для коммерческого сайта, оправданная инвестиция. Для личного блога хватит Wordfence + BBQ.

⁉️🤔 Частые вопросы

Безопасен ли WordPress сам по себе?

Ядро WordPress проверяется сотнями разработчиков и аудиторов безопасности. Проблема не в ядре, проблема в устаревших плагинах, темах из непроверенных источников и паролях 123456. Регулярные обновления плюс базовый файрвол дают достаточную защиту для большинства сайтов.

Можно ли обойтись без плагинов безопасности?

Можно, если вы готовы вручную настраивать файрвол на уровне сервера: iptables, mod_security, 7G/8G Firewall в .htaccess, отслеживать CVE для каждого плагина и писать cron-скрипты для мониторинга. Для всех остальных установка Wordfence или Solid Security, час против десятков часов ручной работы.

Нужны ли обновления, если стоит файрвол?

Да, обязательно. Файрвол отсекает атаки «снаружи», но если установлен плагин с известной уязвимостью, рано или поздно найдётся вектор, который файрвол не перехватит. Обновление всех компонентов WordPress, база, без которой остальные меры работают вполсилы.

Какой плагин безопасности выбрать?

Для минимальной защиты: BBQ Firewall, блокирует вредоносные URL-запросы, ноль настроек. Для полной защиты: Wordfence, WAF, сканер, 2FA, защита от брутфорса, всё в бесплатной версии. Связка BBQ + Wordfence перекрывает оба уровня без конфликтов.

Что делать с REST API, закрывать?

REST API нужен WordPress для работы редактора блоков Gutenberg, ряда плагинов и внешних интеграций. Полное отключение сломает админку. Вместо этого ограничьте доступ: неавторизованным пользователям оставьте только публичные эндпоинты. Плагин REST API Toolbox позволяет гибко настроить доступ без хирургического вмешательства.

Как часто проверять сайт на вирусы?

Автоматически, ежедневно через cron-скрипты: проверка изменённых файлов, поиск .php в uploads. Вручную, раз в месяц: зайти в Wordfence, запустить полное сканирование, проверить список плагинов на предмет заброшенных. Нет обновлений больше года, удалить или заменить.

Можно ли потерять позиции в Google из-за взлома?

Можно, и быстро. Google сканирует сайты на вредоносный код и помечает заражённые предупреждением в выдаче. Если взлом не устранить за несколько недель, сайт деиндексируют. Зарегистрируйте сайт в Google Search Console, получите уведомление о проблеме сразу после обнаружения.

Поможет ли смена хоста от взломов?

Частично. Качественный хостинг добавляет свои уровни: изоляция аккаунтов, мониторинг сети, автообновление PHP. Но хостинг не защищает от дырявого плагина, который вы поставили сами, и от пароля qwerty. Безопасность, слоёный пирог: хостинг плюс обновления плюс файрвол плюс права доступа плюс бэкапы.

Безопасность WordPress с чего начать прямо сегодня

Главное правило безопасности WordPress, не пытаться объять необъятное за один присест. Начните с трёх шагов:

  • Если нет файрвола, поставьте BBQ Firewall. Одна минута.
  • Если нет бэкапов вне сервера, настройте UpdraftPlus с выгрузкой в облако. Десять минут.
  • Если не включена 2FA для администраторов, включите через Wordfence. Пять минут.

Дальше возвращайтесь к списку выше: закройте xmlrpc, обновите соли, отключите редактор файлов, настройте security headers. По одному пункту в день, и через неделю сайт будет защищён на порядок лучше, чем вчера.

А какие меры безопасности уже работают на вашем сайте? Напишите в комментариях, интересно сравнить подходы.