Я использовал капчу в трех формах примерно с 2010 года, и до недавнего времени она была потрясающе эффективной, без изменений. Мы только что внесли некоторые изменения, которые, по нашему мнению, остановят большинство спам-ботов, по крайней мере, до тех пор, пока они не станут более изощренными. В общих чертах вот как мы его настроили:
Одно поле ввода в каждой форме скрыто (отображение: ни один не указан в атрибуте класса CSS) со значением по умолчанию "". Для программ чтения с экрана и т. Д. Скрытая метка ввода дает понять, что поле следует оставить пустым. Не имея длины по умолчанию, мы используем код на стороне сервера (в нашем случае ColdFusion, но это может быть любой язык), чтобы остановить отправку формы, если в этом поле что-то есть. Когда мы прерываем отправку таким образом, мы даем ту же обратную связь с пользователем, как если бы она была успешной («Спасибо за ваш комментарий» или что-то подобное), поэтому нет никаких внешних признаков отказа.
Но со временем боты сообразили, и самая простая из наших форм забивалась спамом. Формы с интерфейсной проверкой работали хорошо, и я полагаю, это потому, что они также не принимают какой-либо старый текстовый ввод, но требуют, чтобы адрес электронной почты был структурирован как адрес электронной почты и так далее. Одна форма, которая оказалась уязвимой, имела только текстовый ввод для комментариев и два дополнительных ввода для контактной информации (номер телефона и адрес электронной почты); я думаю, что важно, чтобы ни один из этих входных данных не включал проверку внешнего интерфейса.
Будет достаточно добавить эту проверку, и мы сделаем это в ближайшее время. На данный момент, однако, мы добавили то, что другие предложили в виде «ловушки времени». Мы устанавливаем переменную времени при загрузке страницы и сравниваем эту временную метку со временем отправки формы. На данный момент мы разрешаем отправку через 10 секунд на странице, хотя некоторые люди предлагают три секунды. Мы будем делать корректировки по мере необходимости. Я хочу посмотреть, как это влияет на спам-трафик, прежде чем добавлять интерфейсную проверку.
Итак, краткое изложение моего опыта таково: honeypot работает довольно хорошо, как и задумывалось изначально. (Я не помню, где я нашел его в первый раз, но этот пост очень похож на первый, который я увидел об этом более десяти лет назад.) Кажется, еще более эффективно с добавлением проверка на стороне клиента включена HTML5 . И мы думаем, что будет еще лучше с серверными ограничениями, которые мы сейчас установили для этих слишком поспешных представлений.
Наконец, я упомяну, что такие решения, как reCaptcha, не обсуждаются. Мы потратили значительное время на разработку веб-приложения с использованием API Google Map, и оно работало до тех пор, пока Google не изменило их API без предупреждения и без рекомендаций по переходу. Мы не выйдем замуж за одного и того же оскорбительного супруга дважды.