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-адресов заблокированных клиентов? А что, если случайно заблокируют какого-нибудь законного клиента?

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

В заключение: в интернете можно найти множество советов о том, как ограничить попытки входа в систему без плагина. Но все эти советы дают люди, которые даже не знают точно, как работает алгоритм аутентификации WordPress, включая тех самых "добрых ребят" со Stack Overflow. Тем не менее, это можно сделать, если вас действительно не беспокоит безопасность вашего сайта, потому что без навыков программирования на 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.