Как не дать спамить?

Ссылка скопирована
1 ответ

Добрый день! Проблема такая использую плагин для вордпресс DW Question Answer(не про версия), но какой-то нехороший человек-скрипт спамит в него всякую дрянь каждые 15 секунд, уже наспамил несколько тысяч сообщений. Как - то можно капчу добавить или что-то настроить чтобы такого не было?

Дополнительно:

Ответы:

Если вы про этот плагин. https://ru.wordpress.org/plugins/question-answer/. Только что поставил его. В разделе настройки есть возможность Google рекапча. Используйте. Можете еще Акисмет поставить.

  • у меня нет настроек
  • Евгений Петряев, Ссылку можете дать на страницу плагина в официальном каталоге?
  • Дмитрий, нашел настройки, получил апи ключ акисмет, сохранил. но спамер спамит до сих пор
  • Евгений Петряев, Акисмет не имеет прямого отношения к вашему плагину. Вам необходим плагин, который поддерживает рекапчу гугл. Или обратитесь к разработчику плагина. Как вариант, поменяйте на этот https://ru.wordpress.org/plugins/question-answer/. Я так и не понял, ваш плагин присутствует в оф каталоге? Что-то я его не нашел по запросу DW Question Answer. Вполне возможно, что он оттуда вылетел по причине спама.
  • Евгений Петряев, Нашел. Теперь все понятно: https://wordpress.org/plugins/dw-question-answer/

    Этот плагин был закрыт 15 июля 2022 г. и недоступен для загрузки. Причина: проблема безопасности.

    Настоятельно рекомендую избавиться от этого плагина.

  • Дмитрий, спасибо за подсказ, три с лишним часа чистил тысячи вопросов - времени ответить не было
Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Сергей Миронов Ответ

Если спам летит в DW Question Answer каждые 15 секунд, нужно одновременно закрыть форму от ботов и почистить уже созданный мусор. Одна капча поможет, но лучше добавить несколько слоёв защиты.

Что сделать в первую очередь:

  1. В настройках DW Question Answer проверьте, есть ли встроенная CAPTCHA/reCAPTCHA и включите её для формы вопроса/ответа.
  2. Запретите публикацию без модерации для новых или гостей.
  3. Ограничьте создание вопросов только зарегистрированными пользователями, если формат сайта позволяет.
  4. Поставьте антиспам уровня Antispam Bee, CleanTalk или Cloudflare Turnstile.
  5. Добавьте rate limit на POST-запросы к форме.

Если хотите быстро закрыть форму для неавторизованных пользователей кодом, можно сделать редирект или блокировку на странице добавления вопроса. Конкретный slug зависит от настроек плагина:

add_action('template_redirect', function () {
    if (is_user_logged_in()) {
        return;
    }
 
    if (is_page('ask-question')) {
        wp_safe_redirect(wp_login_url(get_permalink()));
        exit;
    }
});

add_action('template_redirect', function () { if (is_user_logged_in()) { return; } if (is_page('ask-question')) { wp_safe_redirect(wp_login_url(get_permalink())); exit; } });

Для защиты от слишком частых отправок можно добавить простую проверку по IP на уровне WordPress, но лучше делать это на сервере или через WAF. Пример идеи:

function site_rate_limit_key() {
    return 'qa_limit_' . md5($_SERVER['REMOTE_ADDR'] ?? 'unknown');
}

function site_rate_limit_key() { return 'qa_limit_' . md5($_SERVER['REMOTE_ADDR'] ?? 'unknown'); }

После остановки спама проверьте, не появились ли новые пользователи-администраторы, подозрительные плагины и PHP-файлы в uploads. Массовый спам иногда идёт не только через открытую форму, но и через уже найденную уязвимость.

Удалять тысячи сообщений лучше не вручную из админки, а через выборку по post type/status/date или WP-CLI, предварительно сделав бэкап базы. Иначе можно случайно удалить нормальные вопросы пользователей.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно