Security Blog
Security Blog

Ограничить попытки входа в систему без плагина?

Как защитить страницу входа в WordPress без использования плагина


English version: Limit login attempts without a plugin?


В Интернете можно найти множество комментариев и советов по этому поводу. Но реально ли это?

По умолчанию WordPress разрешает неограниченное количество попыток входа через форму входа, отправку специальных файлов cookie, использование вызовов XML-RPC и вызовов REST API. Это позволяет относительно легко взламывать пароли с помощью грубой силы. В настоящее время хакеры и боты постоянно пытаются войти на ваш сайт WordPress, угадывая ваш пароль администратора и пароли других пользователей, зарегистрированных на сайте. Итак, если вы хотите защитить свой сайт без использования плагина, вам необходимо:

  1. Хорошо знать PHP .
  2. Знайте достаточно о фильтре и действиях аутентификации (встроенных в WordPress), чтобы их подключить. Я рекомендую начать с таких хуков, как «authenticate» и «wp_login_failed».
  3. Отслеживайте форму входа в систему, запросы авторизации XML RPC и REST API и, да, не забывайте авторизационные файлы cookie (действительны ли они?).
  4. Храните где-нибудь все попытки со всеми попытками входа в систему и всеми IP-адресами, чтобы рассчитать, когда и какой IP вам нужно заблокировать. Я рекомендую использовать Transient API. Серьезно. Это самый простой способ. Управлять им, конечно, нельзя, но его использование позволяет что-то сделать без знания SQL.
  5. Рассчитайте время между неудачными попытками входа в систему для определенного IP-адреса.
  6. Имейте инструмент или PHP-код для сброса любого из этих счетчиков и заблокированного IP-адреса клиента. Что, если какой-то законный клиент будет случайно заблокирован?

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

Вывод: в Интернете можно найти множество советов о том, как ограничить попытки входа без плагина. Но все советы дают люди, которые даже не знают, как именно работает алгоритм аутентификации WordPress, в том числе и те милые ребята из stackoverflow. Но в любом случае вы можете это сделать, если действительно не беспокоитесь о безопасности своего сайта, потому что нет возможности сделать это правильно без навыков кодирования PHP и знания механизма аутентификации WordPress.

Если на вашем сайте произойдет что-то странное, кому вы позвоните?


I'm a team lead in Cerber Tech. I'm a software & database architect, WordPress - PHP - SQL - JavaScript developer. I started coding in 1993 on IBM System/370 (yeah, that was amazing days) and today software engineering at Cerber Tech is how I make my living. I've taught to have high standards for myself as well as using them in developing software solutions.

View Comments
There are currently no comments.