Новое

Защита WordPress от брутфорса

Плагин закрывает вход на 15 минут после 5 неудачных попыток с одного IP, прячет логины от гостей, убирает подсказки из ошибок входа и выключает редактор файлов.

Бесплатно

За подписку на канал @kalinkindevc

Совместимость
WordPress 5.6 и новее, PHP 7.0 и новее
Стек
WordPress · PHP
Формат
Один PHP-файл: обязательный или обычный плагин WordPress

проблема

Что решает

  • !В логах сервера много запросов к wp-login.php: кто-то перебирает пароли
  • !Список пользователей открыт по адресу /wp-json/wp/v2/users, а ссылка /?author=1 ведёт на архив автора с его ником в адресе
  • !Форма входа подсказывает, что логин существует и ошибка только в пароле
  • !Если злоумышленник попадёт в админку, он допишет вредоносный код через редактор файлов тем и плагинов

решение

Что получите

  • ✓После 5 неудачных попыток с одного IP вход с него закрыт на 15 минут, успешный вход обнуляет счётчик
  • ✓Гости не видят список пользователей в REST API, а ссылки вида /?author=1 ведут на главную
  • ✓На любую ошибку входа форма отвечает одной фразой и не подтверждает, что логин существует
  • ✓Редактор файлов тем и плагинов в админке выключен
  • ✓Лимит входа, XML-RPC, REST Batch API, скрытие пользователей и редактор файлов выключаются отдельными константами в wp-config.php, число попыток и время блокировки настраиваются

О скрипте

Брутфорс это подбор пароля перебором: бот раз за разом пробует пары «логин + пароль», пока не угадает. Плагин ограничивает число попыток и убирает подсказки, которые помогают такой подбор вести.

Что делает

  • Ограничивает вход. После 5 неудачных попыток с одного IP вход с этого адреса закрыт на 15 минут, каждая новая ошибка продлевает блокировку.
  • Прячет логины. Гости не видят список пользователей в REST API, ссылки вида /?author=1 ведут на главную.
  • Убирает подсказки. На любую ошибку входа форма пишет одно и то же.
  • Выключает редактор файлов тем и плагинов в админке.
  • Закрывает REST Batch API для гостей и отключает методы XML-RPC.

Что учесть до установки

С Jetpack XML-RPC нужно оставить включённым, это одна строка в wp-config.php. Пингбэки от других сайтов перестанут приходить. Если сайт стоит за Cloudflare или другим прокси и сервер не получает настоящий IP посетителя, все выглядят как один адрес, и бот может закрыть вход даже администратору.

Что вы получите

  • 1Формат поставки — Один PHP-файл: обязательный или обычный плагин WordPress

Частые вопросы

Сайт работает через Cloudflare. Подойдёт?

Плагин считает попытки по IP, который видит сервер. Если сервер не получает настоящий IP посетителя из-за Cloudflare или прокси, все посетители выглядят как один адрес, и бот может заблокировать вход всем, в том числе вам. Настройте на сервере передачу реального IP или выключите лимит константой KND_BF_LIMIT_LOGIN и защищайте вход на стороне прокси.

У меня Jetpack. Что сломается?

По документации Jetpack ему нужен файл xmlrpc.php для связи с сайтом. Добавьте в wp-config.php строку define('KND_BF_DISABLE_XMLRPC', false), остальные функции плагина продолжат работать.

Защитит ли плагин от DDoS или атаки с тысяч адресов?

Нет. Каждая попытка входа всё равно доходит до WordPress и нагружает сервер, а лимит считается на один IP. От массовых атак защищают файрвол хостинга, Cloudflare или fail2ban.

Что делать, если я заблокировал сам себя?

Блокировка снимется через 15 минут после последней неудачной попытки. Если ждать нельзя, временно удалите файл плагина или удалите из таблицы wp_options записи, которые начинаются с _transient_knd_bf_ и _transient_timeout_knd_bf_.

Уже стоит Wordfence или Limit Login Attempts. Этот плагин нужен?

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

Есть задача?

Обсудим в мессенджере

Расскажите, что нужно сделать — отвечу в течение 4 часов в рабочее время. Первая консультация бесплатно.

Продолжая пользование настоящим сайтом Вы выражаете своё согласие на обработку Ваших персональных данных (файлов куки) с использованием Yandex.Metrika.
Понятно