Hushfort

Как остановить спам-регистрации пользователей в WordPress?

Автор: Eureka Studio · Обновлено

Коротко

Если открытая регистрация вам не нужна, отключите её. Если нужна — ограничьте число регистраций с одного IP и из одной сети в час, задайте общий почасовой потолок на весь сайт, который при срабатывании отправляет новые аккаунты на проверку, блокируйте одноразовые email, добавьте невидимые поля-ловушки и притормаживайте приветственные письма. В WooCommerce никогда не блокируйте оформление заказа — подозрительные аккаунты лучше отложить на проверку.

Шаги

  1. 1Шаг 1

    Проверьте, нужна ли открытая регистрация

    В разделе Настройки → Общие посмотрите, отмечен ли пункт Членство «Любой может зарегистрироваться». В WooCommerce проверьте, могут ли покупатели создавать аккаунт на странице «Мой аккаунт». Если это никому не нужно, отключите.

    Настройки WordPress → Общие: в пункте Членство отмечено «Любой может зарегистрироваться», роль нового пользователя — Подписчик
  2. 2Шаг 2

    Включите защиту регистрации в режиме наблюдения

    В Hushfort откройте «Защиту регистрации», включите её и выберите режим «Только записывать — режим наблюдения, регистрации не блокируются». Оставьте включёнными «Невидимые поля-ловушки» и сохраните — так вы сможете проверить журнал, прежде чем защита начнёт действовать.

    Защита регистрации включена в режиме «Только записывать — режим наблюдения», невидимые поля-ловушки включены
  3. 3Шаг 3

    Задайте почасовые лимиты и потолок

    Ограничьте число регистраций с одного IP и из одной сети в час, затем задайте «Почасовой потолок регистраций (на весь сайт)». Когда потолок достигнут, аварийный выключатель отправляет новые аккаунты на проверку.

    Регистраций на IP — 3 в час, на сеть — 10 в час, почасовой потолок регистраций — 50 на весь сайт
  4. 4Шаг 4

    Посмотрите, как волна регистраций упирается в потолок

    Когда регистраций становится больше почасового потолка, новые аккаунты попадают в «Ожидающие аккаунты» с причиной «Сработал аварийный выключатель». Одобрите настоящие, остальные удалите.

    Ожидающие аккаунты: четыре новых аккаунта задержаны с причиной «Сработал аварийный выключатель», есть кнопки «Одобрить» и «Удалить»
  5. 5Шаг 5

    Удалите уже созданные аккаунты

    Воспользуйтесь мастером очистки: нажмите «1. Предпросмотр», чтобы получить список аккаунтов без заказов, комментариев и записей, затем «2. Создать копию и удалить». Удалённые аккаунты можно восстановить в течение 30 дней.

    Предпросмотр мастера очистки: 66 аккаунтов-кандидатов на удаление с замаскированными email и датами регистрации

Почему это важно

Спам-регистрации в WordPress останавливают так: если открытая регистрация не нужна, снимите «Любой может зарегистрироваться» в «Настройки» → «Общие»; если нужна — ограничьте регистрации с одного IP и из одной сети в час, задайте общий почасовой потолок на сайт и добавьте невидимые поля-ловушки. Оформление заказа в WooCommerce при этом не блокируйте.

Несколько фейковых аккаунтов безвредны. Лавина — нет. Мы создали этот уровень защиты после того, как один сайт получил около 10 000 запросов на регистрацию всего за час и в итоге оброс десятками тысяч фейковых аккаунтов. На другом сайте приветственные письма фейковым аккаунтам исчерпали почтовую квоту, и настоящие письма о заказах перестали уходить.

Фейковые регистрации вредят и менее заметно: раздутая таблица пользователей, медленные экраны админки, засорённые списки клиентов и отчёты по почте, а также падающая репутация почтового сервера — каждый раз, когда приветственное письмо отскакивает от несуществующего адреса.

Частые ошибки

  • Регистрация открыта по недосмотру. Пункт «Любой может зарегистрироваться» иногда включают при настройке сайта и забывают.
  • Слишком сильная роль по умолчанию. Новые пользователи должны получать роль «Подписчик» или «Клиент», но никак не «Автор» и выше.
  • Лимиты только по IP. Волны регистраций часто идут со множества адресов одной сети. Ограничивайте и по сети.
  • Закрытие регистрации во время атаки. Так вы отрезаете настоящих покупателей — именно этого и добивается атакующий. Если отправлять новые аккаунты в ожидание, дверь остаётся открытой, пока волна не схлынет.
  • Блокировка при оформлении заказа. Магазин никогда не должен терять заказ из-за спам-фильтра.
  • Удаление без резервной копии. Массовое удаление необратимо. Сначала посмотрите список и сохраните копию.

Без плагина

  1. Отключите регистрацию, если она не нужна: Настройки → Общие → снимите отметку «Любой может зарегистрироваться». В WooCommerce: WooCommerce → Настройки → Учётные записи и конфиденциальность — отключите создание аккаунта на странице «Мой аккаунт».
  2. Оставьте роль по умолчанию минимальной: Настройки → Общие → Роль нового пользователя → Подписчик.
  3. Добавьте поле-ловушку в форму WordPress двумя небольшими хуками:
<?php
add_action( 'register_form', function () {
    echo '<p style="position:absolute;left:-9999px" aria-hidden="true">'
       . '<input type="text" name="hp_company" tabindex="-1" autocomplete="off"></p>';
} );
add_filter( 'registration_errors', function ( $errors ) {
    if ( ! empty( $_POST['hp_company'] ) ) {
        $errors->add( 'spam', 'Registration failed.' );
    }
    return $errors;
} );

Этот код защищает только стандартную форму WordPress — не WooCommerce и не другие формы регистрации, — и в нём нет ни лимитов частоты, ни потолка, ни очистки. Во время идущей атаки эти шаги помогут, но не остановят её.

Если что-то пошло не так

  • Настоящие покупатели не могут зарегистрироваться. Проверьте журнал в режиме наблюдения и посмотрите, не упирается ли сеть вашего офиса или мероприятия в лимит на сеть. Увеличьте его или добавьте IP в белый список.
  • Накопились ожидающие аккаунты. Они автоматически удаляются через 7 дней. Одобрите настоящие до этого срока.
  • Покупатель не получил приветственное письмо. Если сработал потолок, задержанные аккаунты не получают писем до одобрения. Так задумано.

С Hushfort

«Защита регистрации» входит в Hushfort Pro — платное дополнение к Hushfort Security, бесплатному плагину безопасности для WordPress.

Защита регистрации Hushfort охватывает регистрацию в WordPress и WooCommerce, а также другие формы регистрации:

  • По умолчанию 3 регистрации в час с одного IP (IPv6 /64) и 10 в час из одной сети (/24, IPv6 /48).
  • Общий потолок на сайт — 50 в час, с аварийным выключателем, который остаётся включённым 60 минут. По умолчанию он отправляет новые аккаунты в ожидание без писем; вместо этого можно выбрать закрытие регистрации.
  • Блокировка одноразовых email и распознавание вариаций Gmail (точки, +метки, googlemail).
  • Невидимые поля-ловушки в регистрации WordPress и WooCommerce.
  • Притормаживание приветственных писем, чтобы фейковые регистрации не сжигали почтовую квоту.
  • Мастер очистки с предпросмотром и резервной копией, из которой можно восстановить аккаунты в течение 30 дней.
  • Ожидающие аккаунты автоматически удаляются через 7 дней.

Оформление заказа никогда не блокируется. Сначала можно запустить защиту в режиме наблюдения, чтобы увидеть эффект, прежде чем она начнёт действовать.

Частые вопросы

Почему у меня так много фейковых регистраций?

Боты регистрируют аккаунты, чтобы публиковать спам, проверять украденные списки email или злоупотреблять приветственными письмами, рассылая почту через ваш сервер. Открытые формы регистрации — лёгкая цель для автоматизации.

Как массово удалить фейковых пользователей WordPress?

В разделе «Пользователи» отфильтруйте по роли, отсортируйте по дате регистрации и удалите массово. Сначала сделайте резервную копию. Мастер очистки Hushfort показывает список заранее и хранит копию для восстановления 30 дней.

Не заблокируют ли лимиты регистраций настоящих покупателей WooCommerce?

При оформлении заказа — нет. Hushfort никогда не блокирует оформление заказа; подозрительный аккаунт, созданный во время оплаты, откладывается на проверку, а заказ проходит.

Что такое вариации адресов Gmail?

Gmail игнорирует точки и всё, что идёт после знака плюс, а googlemail.com — тот же самый ящик. Боты используют адреса вроде [email protected], чтобы создать много аккаунтов на один ящик.

Стоит ли добавить CAPTCHA в форму регистрации?

Можно, но она мешает настоящим покупателям. Поля-ловушки, почасовые лимиты и общий потолок на сайт останавливают волны регистраций незаметно.

Сообщить об ошибке или предложить функцию

Ваше сообщение попадёт прямо к команде, которая разрабатывает Hushfort.

О чём сообщение?

Используется только для ответа вам.

Мы используем эти данные только для ответа вам. Конфиденциальность