Идея отрицательной CAPTCHA не просить пользователя доказать, что он человек, а раскрыть, что спам-робот является ботом.
Большинство ботов реально тупые, они ползают по вебу и кладут свой спам в каждое поле формы, какое только находят. Отрицательная CAPTCHA берет преимущество в этом и включает поле "соблазна" в форму, которое скрыто от человека с помощью CSS или JavaScript.
Вот несколько идей, как спрятать поля соблазна с помощью JavaScript и/или CSS:
- расположить поля за пределами видимой области страницы
- сделать элементы очень маленькими или цветом таким же, как фон страницы
- оставить поля отображаемыми, но сказать людям оставить их пустыми
Наиболее простой отрицательной CAPTCHA является одно скрытое поле соблазна. На серверной стороне проверяется значение поля: если оно содержит текст, значит это бот. Затем можно или игнорировать сообщение, или вернуть положительный результат, но не сохранять сообщение в базу данных. Это, возможно, удовлетворит бота и он пойдет дальше. То же самое можно делать с надоедливыми пользователями.
Комментарии
Ну например https://drupal.org/project/hidden_captcha - это не новая идея и давно используется.
можно при условии что у пользователя включен js , скриптом заполнять скрытое поле определенным значением
а потом в validation поле проверять на это значение
боты могут оказаться написанными на xulrunner и как следствие смогут обрабатывать js
как правило боты не умеют эмулировать поведение браузера
да и фильтры нужно писать комплексные
botcha, honeypot