Кто как от спам-форм всех этих мусорных ботов спасается?
В общем, PHP-формы постоянно атакуют всякие боты и роботы — это бесконечная головная боль. Я обычно сначала проверяю базовые вещи: есть ли у формы минимальные проверки на стороне сервера — например, валидация email, длины полей, обязательных значений. Если пустая или абсурдная инфа, сразу отбрасываю. Потом добавляю капчу — но не всегда хочется юзать Google reCAPTCHA, тут можно и свои простые хитрости сделать, типа математического вопроса или скрытого поля с ловушкой (honeypot). Если бот заполняет скрытое поле — значит, мусор.
Ещё помогает ограничение частоты отправки с одного IP, если это уместно. Часто делают, чтобы парень с одного IP не тыркал форму каждые пару секунд. Ну и логирование подозрительной активности — полезная вещь, можно потом ручками посмотреть, откуда идет спам.
Чисто технически, для защиты лучше делать проверку на сервере, а не только на клиенте — иначе любой может отключить JS и валить спам. В стандартных вариантах без сложных сервисов тоже стоит следить за заголовками User-Agent и Referer, иногда там можно выловить автоматические запросы.
У кого как? Может у вас есть какие-то нестандартные фишки или библиотеки, которые реально помогают без боли?
Сам заметил, что капчи с простыми вопросами реально сбивают с толку многих ботов, без перегруза для юзеров. И скрытые поля — вообще классика, многие упускают этот момент, а он чаще всего срабатывает. Лимиты по IP тоже иногда помогают, особенно если нагрузка не слишком большая. Главное — не полагаться только на капчу, а сочетать разные методы.