Інструкції

Як захистити вхід у WordPress

Сторінка wp-login.php - улюблена ціль ботів, які цілодобово перебирають паролі до адмінки. На shared-хостингу такі атаки ще й зʼїдають ліміти акаунта, і сайт починає гальмувати або впирається в помилку про перевищення ресурсів. Нижче зібрані практичні кроки, які закривають вхід у WordPress без важких плагінів і зайвих милиць.

Перевірте свій сайт

>
  1. Приберіть логін admin і поставте надійний пароль

    Зайдіть у Users > All Users. Якщо є користувач з іменем admin або таким самим, як домен, створіть нового адміністратора з унікальним іменем, перелогіньтеся під ним і видаліть старого, передавши йому записи. Пароль зробіть довгим (16+ символів) через генератор, а не памʼятним словом.

  2. Обмежте кількість спроб входу

    Стандартний WordPress дозволяє перебирати паролі нескінченно. Поставте плагін на кшталт Limit Login Attempts Reloaded: після кількох невдалих спроб IP тимчасово блокується. Якщо на хостингу увімкнено Imunify360, частину брутфорсу він відсікає ще до WordPress, але плагін лишається корисним додатковим рівнем.

  3. Увімкніть двофакторну автентифікацію (2FA)

    2FA додає до пароля одноразовий код із застосунку (Google Authenticator, Authy). Навіть якщо пароль украдуть, без коду в адмінку не зайдуть. Підійде безкоштовний плагін Two-Factor або WP 2FA; увімкніть 2FA хоча б для всіх ролей адміністратора та редактора.

  4. Сховайте або закрийте wp-login.php

    Змініть адресу входу плагіном на кшталт WPS Hide Login, щоб боти не знаходили стандартний wp-login.php. Надійніший варіант - захистити вхід на рівні сервера: у cPanel відкрийте Directory Privacy і поставте пароль на теку wp-admin, або обмежте доступ до wp-login.php за IP у .htaccess, якщо ваша адреса статична.

  5. Додайте 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 ці рядки працюють без окремих модулів.

  6. Тримайте WordPress оновленим і вимкніть редактор файлів

    Більшість зломів іде не через підбір пароля, а через діри у старих плагінах і темах. Увімкніть автооновлення для ядра й плагінів, приберіть невикористовувані теми. У wp-config.php додайте define('DISALLOW_FILE_EDIT', true); - тоді навіть отримавши доступ, зловмисник не відредагує код теми прямо з адмінки.

Як перевірити результат

Перевірте, що зі старим паролем і без 2FA у адмінку більше не зайти, а після кількох хибних спроб IP блокується. Наявність security-заголовків на сторінці входу швидко підтвердить безкоштовний чекер заголовків TechGuard: він покаже оцінку від A+ до F і які заголовки ще варто додати.

Порада: Не ставте пароль через Directory Privacy на всю теку wp-admin, не зробивши виняток для admin-ajax.php: інакше поламаються форми, фільтри та інша AJAX-логіка на публічній частині сайту.

Схожі інструкції