Как насчет добавления дополнительного ввода в форму и затем скрытия его в стиле CSS.
Тогда, если поле заполнено, вы можете быть уверены, что это был бот.
- Боты обычно не обрабатывают правила CSS, поэтому они будут видеть ввод текста и заполнять его
- У большинства людей при просмотре включается CSS, поэтому они не видят текстовый ввод, и он будет пустым
Для законных пользователей, у которых отключен CSS, вы можете добавить к текстовому вводу метку (также скрытую с помощью css), которая говорит им, что вводить.
например. добавьте что-то подобное в вашу форму
<div style="display:none">
<label for="hidden-textbox">What is 10 plus 5?</label>
<input type="text" id="hidden-textbox" name="hdn-txt" maxlength="20"/>
</div>
При обработке отправки формы:
- ничего при вводе текста не является законным пользователем
- значение, которое вы сказали им ввести в заголовке, является законным пользователем
- любое значение, отличное от пустого, или указанное вами значение - СПАМ, и вы можете удалить его