Ограничить попытки входа в систему без плагина?
Как защитить страницу входа в WordPress без использования плагина
English version: Limit login attempts without a plugin?
В Интернете можно найти множество комментариев и советов по этому поводу. Но реально ли это?
По умолчанию WordPress разрешает неограниченное количество попыток входа через форму входа, отправку специальных файлов cookie, использование вызовов XML-RPC и вызовов REST API. Это позволяет относительно легко взламывать пароли с помощью грубой силы. В настоящее время хакеры и боты постоянно пытаются войти на ваш сайт WordPress, угадывая ваш пароль администратора и пароли других пользователей, зарегистрированных на сайте. Итак, если вы хотите защитить свой сайт без использования плагина, вам необходимо:
- Хорошо знать PHP .
- Знайте достаточно о фильтре и действиях аутентификации (встроенных в WordPress), чтобы их подключить. Я рекомендую начать с таких хуков, как «authenticate» и «wp_login_failed».
- Отслеживайте форму входа в систему, запросы авторизации XML RPC и REST API и, да, не забывайте авторизационные файлы cookie (действительны ли они?).
- Храните где-нибудь все попытки со всеми попытками входа в систему и всеми IP-адресами, чтобы рассчитать, когда и какой IP вам нужно заблокировать. Я рекомендую использовать Transient API. Серьезно. Это самый простой способ. Управлять им, конечно, нельзя, но его использование позволяет что-то сделать без знания SQL.
- Рассчитайте время между неудачными попытками входа в систему для определенного IP-адреса.
- Имейте инструмент или PHP-код для сброса любого из этих счетчиков и заблокированного IP-адреса клиента. Что, если какой-то законный клиент будет случайно заблокирован?
Выглядит сумасшедшим? У вас есть второй вариант. Вы можете погуглить и взять фрагменты кода из какого-нибудь блога в Интернете без каких-либо гарантий и поддержки.
Вывод: в Интернете можно найти множество советов о том, как ограничить попытки входа без плагина. Но все советы дают люди, которые даже не знают, как именно работает алгоритм аутентификации WordPress, в том числе и те милые ребята из stackoverflow. Но в любом случае вы можете это сделать, если действительно не беспокоитесь о безопасности своего сайта, потому что нет возможности сделать это правильно без навыков кодирования PHP и знания механизма аутентификации WordPress.