Как я могу предотвратить автоматическое заполнение формы IE для заполнения поля приманки?

Я реализовал поля-приманки в большинстве контактных форм моих клиентов, чтобы предотвратить рассылку спама. Однако я заметил, что опция автоматического заполнения формы IE заполняет поле приманки и, таким образом, запускает мою логику защиты от спама. Как я могу предотвратить это?

Я пробовал дать полю формы другое имя - в настоящее время оно называется emailConfirmation, но я пробовал conf_em и liame, и оно по-прежнему заполняется автоматически. Я также попытался переместить поле приманки в самый низ формы — нигде рядом с существующим вводом email.


person Eric Belair    schedule 29.02.2012    source источник
comment
поле невидимо? Если да, я не понимаю, почему IE будет автоматически заполнять его. Если нет, то при чем здесь приманка?   -  person Niklas B.    schedule 29.02.2012
comment
Да, скрытое поле в SPAN (css: display: none), это и есть поле-приманка — скрытое поле, о котором боты не знают, что оно скрыто, поэтому они его заполняют. Но IE IS автоматическое заполнение.   -  person Eric Belair    schedule 29.02.2012
comment
Ага, я просто не мог поверить, что IE такой тупой. Какой смысл заполнять скрытое поле? :/   -  person Niklas B.    schedule 29.02.2012
comment
Прошу прощения, это поле ввода текста скрыто с помощью CSS. Это НЕ вход type="hidden".   -  person Eric Belair    schedule 29.02.2012
comment
Это то, что я имел в виду. <input type="text" /> с display: none или visibility: hidden. Заполнять его абсолютно нет смысла.   -  person Niklas B.    schedule 29.02.2012
comment
Я думаю, что на следующей странице есть несколько хороших советов о том, как этого избежать: in-a-html-form">отключить автозаполнение   -  person David Faber    schedule 29.02.2012
comment
Другая мысль, которая приходит на ум, заключается в том, что вы могли бы иметь заданное значение для этого поля приманки и сверять его с этим значением. Или бот вводит значение только тогда, когда в поле нет значения?   -  person David Faber    schedule 29.02.2012


Ответы (3)



Дайте вашему полю приманки полуслучайное имя, например. суффикс фактического имени со случайным числом. Таким образом, оно никогда не должно быть одним и тем же именем дважды и не должно заполняться IE.

Вы также можете взглянуть на cfformprotect. У него есть несколько замечательных функций, и он помог мне защитить отправку форм в нескольких проектах.

person Stephen Moretti    schedule 29.02.2012
comment
Спасибо, я также стараюсь отойти от использования ColdFusion везде, где это возможно, в этих формах, так как это просто маркетинговые веб-сайты, и прямо сейчас единственная потребность в CF — это добавление данных в базу данных клиента, что скоро не понадобится. - person Eric Belair; 29.02.2012

Вот мое предложение для вашей невидимой приманки: поместите html-тег autocomplete="off" на уровне формы. Поместив его на уровень невидимого поля, вы идентифицируете свое скрытое поле, и немного умный бот может использовать это, чтобы распознать его. поддержка тега автозаполнения: http://help.dottoro.com/lhdwgiwh.php с вашими целевыми версиями IE (нужна ли вам поддержка IE 5 и 6?). Для имени невидимого поля используйте как можно более распространенное имя. Например. страна, поэтому алгоритм бота подберет ее и заполнит данными.

С уважением, Карло.

person Karlo Smid    schedule 08.11.2012