Як захистити вхід у WordPress
Сторінка wp-login.php - улюблена ціль ботів, які цілодобово перебирають паролі до адмінки. На shared-хостингу такі атаки ще й зʼїдають ліміти акаунта, і сайт починає гальмувати або впирається в помилку про перевищення ресурсів. Нижче зібрані практичні кроки, які закривають вхід у WordPress без важких плагінів і зайвих милиць.
Перевірте свій сайт
-
Приберіть логін admin і поставте надійний пароль
Зайдіть у Users > All Users. Якщо є користувач з іменем admin або таким самим, як домен, створіть нового адміністратора з унікальним іменем, перелогіньтеся під ним і видаліть старого, передавши йому записи. Пароль зробіть довгим (16+ символів) через генератор, а не памʼятним словом.
-
Обмежте кількість спроб входу
Стандартний WordPress дозволяє перебирати паролі нескінченно. Поставте плагін на кшталт Limit Login Attempts Reloaded: після кількох невдалих спроб IP тимчасово блокується. Якщо на хостингу увімкнено Imunify360, частину брутфорсу він відсікає ще до WordPress, але плагін лишається корисним додатковим рівнем.
-
Увімкніть двофакторну автентифікацію (2FA)
2FA додає до пароля одноразовий код із застосунку (Google Authenticator, Authy). Навіть якщо пароль украдуть, без коду в адмінку не зайдуть. Підійде безкоштовний плагін Two-Factor або WP 2FA; увімкніть 2FA хоча б для всіх ролей адміністратора та редактора.
-
Сховайте або закрийте wp-login.php
Змініть адресу входу плагіном на кшталт WPS Hide Login, щоб боти не знаходили стандартний wp-login.php. Надійніший варіант - захистити вхід на рівні сервера: у cPanel відкрийте Directory Privacy і поставте пароль на теку wp-admin, або обмежте доступ до wp-login.php за IP у .htaccess, якщо ваша адреса статична.
-
Додайте security-заголовки в .htaccess
Заголовки прикривають форму входу від клікджекінгу (коли її вантажать у прихований iframe) і зайвих витоків. У .htaccess у корені сайту додайте:
Header always set X-Frame-Options SAMEORIGIN
Header always set X-Content-Type-Options nosniff
Header always set Referrer-Policy strict-origin-when-cross-origin
На HTTPS додайте ще Strict-Transport-Security. На LiteSpeed ці рядки працюють без окремих модулів. -
Тримайте WordPress оновленим і вимкніть редактор файлів
Більшість зломів іде не через підбір пароля, а через діри у старих плагінах і темах. Увімкніть автооновлення для ядра й плагінів, приберіть невикористовувані теми. У wp-config.php додайте define('DISALLOW_FILE_EDIT', true); - тоді навіть отримавши доступ, зловмисник не відредагує код теми прямо з адмінки.
Як перевірити результат
Перевірте, що зі старим паролем і без 2FA у адмінку більше не зайти, а після кількох хибних спроб IP блокується. Наявність security-заголовків на сторінці входу швидко підтвердить безкоштовний чекер заголовків TechGuard: він покаже оцінку від A+ до F і які заголовки ще варто додати.
Порада: Не ставте пароль через Directory Privacy на всю теку wp-admin, не зробивши виняток для admin-ajax.php: інакше поламаються форми, фільтри та інша AJAX-логіка на публічній частині сайту.