Масові фальшиві реєстрації у WordPress зазвичай проявляються як стрімке зростання кількості облікових записів, спам у профілях, рекламні коментарі або незвична активність у журналах сервера. Така атака не завжди означає злам сайту: найчастіше автоматизовані скрипти знаходять відкриту форму реєстрації та надсилають сотні або тисячі запитів.
Небезпека полягає не лише в засміченні бази даних. Боти можуть створювати навантаження на сервер, використовувати слабкі паролі, атакувати сторінки входу або намагатися обійти перевірки через різні IP-адреси. Захист потрібно налаштовувати так, щоб не ускладнити реєстрацію реальним покупцям і користувачам.
Чому виникають масові фальшиві реєстрації
Перша причина — відкрита реєстрація без додаткової перевірки. У WordPress її можна ввімкнути в налаштуваннях «Загальні» через параметр «Членство». Якщо реєстрація потрібна лише адміністраторам або менеджерам, її краще вимкнути.
Інші поширені причини:
- форма реєстрації доступна без CAPTCHA або іншого антибот-захисту;
- плагін реєстрації має вразливість або не перевіряє запити належним чином;
- на сервері відсутнє обмеження частоти запитів;
- боти використовують проксі та постійно змінюють IP-адреси;
- форма приймає запити без nonce, перевірки email або підтвердження реєстрації;
- застарілі версії WordPress, теми чи плагінів містять відомі проблеми;
- облікові записи створюються не через стандартну форму, а через API, AJAX або сторонній сервіс.
Перед змінами варто визначити джерело проблеми. Перевірте час створення користувачів, їхні email-адреси, IP, ролі та спосіб реєстрації. Інформацію можна шукати в журналах вебсервера, плагіна безпеки, системі аналітики та базі даних. Не видаляйте записи навмання: серед них можуть бути реальні клієнти.
Як захистити форми входу й реєстрації
Почніть із перевірки, чи потрібна реєстрація взагалі. Якщо сайт використовує WooCommerce або особистий кабінет, повністю вимикати її не слід. У такому разі краще обмежити реєстрацію конкретним сценарієм і додати підтвердження email.
Для стандартної форми WordPress та форм WooCommerce доцільно застосувати такі заходи:
- увімкнути CAPTCHA або невидиму перевірку поведінки користувача;
- додати підтвердження email перед активацією облікового запису;
- обмежити доступ до адміністративних ролей і заборонити їх автоматичне призначення;
- використовувати довгі унікальні паролі та двофакторну автентифікацію для адміністраторів;
- оновити WordPress, тему та плагіни після перевірки сумісності;
- перевірити сторонні форми, pop-up, AJAX-обробники та інтеграції з CRM;
- додати nonce і серверну перевірку даних, а не покладатися лише на JavaScript у браузері.
Важливо не захищати форму лише блокуванням окремих IP. Такий підхід малоефективний проти ботнетів і може випадково заблокувати клієнтів мобільних операторів, офісні мережі або користувачів із VPN. Краще поєднувати кілька рівнів захисту: перевірку форми, обмеження частоти запитів і фільтрацію підозрілої поведінки.
Налаштування CAPTCHA rate limit і firewall
CAPTCHA має перевіряти саме операцію реєстрації або входу. Після встановлення перевірте, чи справді вона працює на сервері: деякі плагіни показують віджет, але не блокують запит при помилці перевірки. Надто складна CAPTCHA може зменшити конверсію, тому для звичайних відвідувачів краще використовувати невидиму або адаптивну перевірку.
Rate limit обмежує кількість запитів за певний проміжок часу. Його можна налаштувати на рівні CDN, вебсервера або плагіна безпеки. Обмежувати потрібно не тільки IP, а й конкретну дію: реєстрацію, вхід, відновлення пароля та надсилання форм. Приклад логіки — дозволити обмежену кількість спроб за хвилину, а після перевищення тимчасово уповільнювати запити, а не блокувати користувача назавжди.
Під час налаштування rate limit врахуйте:
- спільні IP-адреси офісів, навчальних закладів і мобільних операторів;
- IPv4 та IPv6, якщо сайт підтримує обидва протоколи;
- сторінки, які не повинні потрапити під обмеження, наприклад CSS, JavaScript і зображення;
- легітимні запити від платіжних систем, CRM або зовнішніх інтеграцій;
- коректне визначення реальної IP-адреси за проксі чи CDN.
Firewall може блокувати відомі шкідливі мережі, підозрілі User-Agent, невірні URL і повторювані шаблони запитів. Але агресивні правила здатні порушити роботу магазину або API. Нові правила краще спочатку вмикати в режимі журналювання, переглядати спрацювання та лише потім переводити в режим блокування.
Якщо атака триває, а сервер перевантажений, перевірте журнали хостингу та налаштування вебсервера. На цьому етапі помилки в конфігурації можуть зробити сайт недоступним, тому перед змінами бажано мати резервну копію файлів і бази даних та доступ до панелі хостингу.
Як видалити ботів без шкоди даним
Перед масовим видаленням створіть окрему резервну копію бази даних і файлів. Збережіть також список користувачів, яких плануєте видалити. Резервна копія не гарантує коректного відновлення, якщо вона пошкоджена або зроблена без перевірки, тому критичні дані бажано додатково перевірити на тестовому середовищі.
Безпечна послідовність дій:
- визначити ознаки ботів: дата створення, домени email, роль, відсутність замовлень або активності;
- відокремити підозрілі облікові записи від реальних клієнтів;
- тимчасово заборонити входи або перевести підозрілі профілі в неактивний статус, якщо така функція доступна;
- перевірити, чи не пов’язані ці користувачі із замовленнями, підписками, коментарями або заявками;
- видаляти записи невеликими групами через штатні інструменти WordPress або перевірений плагін;
- після видалення очистити пов’язані метадані та перевірити, чи не залишилися спам-коментарі або записи в сторонніх таблицях.
Не рекомендується виконувати прямі SQL-запити на робочому сайті без розуміння структури бази даних. Помилка в умові DELETE може видалити реальних клієнтів, замовлення або метадані. Якщо користувачів багато, спочатку експортуйте їхні ідентифікатори та виконайте операцію на копії бази. Для складних сайтів із WooCommerce, membership-плагінами чи інтеграціями краще залучити спеціаліста.
Після очищення перевірте, чи не створив нападник адміністративні облікові записи. Перегляньте список користувачів, активні сесії, ключі API, cron-завдання, невідомі плагіни та зміни у файлах. Якщо є ознаки шкідливого коду або несанкціонованого доступу, простого видалення ботів недостатньо — потрібна повна діагностика безпеки.
Як перевірити результат захисту
Після внесення змін протестуйте сайт у звичайному браузері, приватному режимі та з мобільного інтернету. Перевірте реєстрацію, вхід, відновлення пароля, оформлення замовлення та роботу листів підтвердження. Переконайтеся, що CAPTCHA не заважає реальним користувачам, а помилки форми зрозумілі.
Результат оцінюють не лише за кількістю нових користувачів. Протягом кількох днів контролюйте:
- кількість запитів до форм реєстрації та входу;
- частоту спрацювання CAPTCHA, rate limit і firewall;
- коди відповідей сервера та зростання часу завантаження;
- нові облікові записи, домени email і розподіл IP-адрес;
- помилки в журналах WordPress, PHP та вебсервера;
- роботу замовлень, повідомлень і зовнішніх інтеграцій.
Якщо після налаштувань боти продовжують реєструватися, проблема може бути в іншій формі, API-ендпоїнті, скомпрометованому плагіні або неправильній передачі IP через CDN. Коли атака створює навантаження, є підозра на вірус чи втрату доступу до адміністративної панелі, не варто хаотично змінювати файли та базу. Спочатку зробіть резервну копію, збережіть журнали й зверніться до фахівця для діагностики та безпечного відновлення роботи сайту.