2010-07-12 5 views
5

Я запускаю ColdFusion MX, поэтому у меня нет возможности использовать встроенный cfimage Captcha functionality в моем приложении перед отправкой формы.Как предотвратить автоматическую отправку форм ботами?

Но проблема заключается в том, что боты не передают формы.

Что будет лучшим способом предотвращения автоматической отправки?

+0

Почему вы не можете использовать captcha? Какой язык программирования вы используете? –

+0

Я использую Coldfusion MX, , который не имеет встроенной поддержки для Captcha. – user160820

+2

от Coldfusion 8, имеет поддержку Captcha. – user160820

ответ

6

Посмотрите на cfformprotect - он будет работать с CFMX 6 и всеми последующими двигателями.

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

Кроме того, вы можете захотеть взглянуть на CF wrapper for reCaptcha, который совместим с CFMX 7.

4

Техника, которую я использовал с другой технологией, заключалась в использовании кнопок изображения. Ваш обработчик POST получает координаты x, y, на которые были нажаты изображения. Я обнаружил, что боты (которые только генерируют почтовые запросы) прошли 0,0, и, отбросив эти запросы на пол, я довел спам-сообщения до менее реальных. Извините, что я не знаю, как это сделать в CF, но я надеюсь, что эта техника вам полезна.

9

Captchas не должны быть изображениями!

Попробуйте выполнить одно из следующих решений:

  • Большинство ботов не понимают CSS. Создайте две кнопки отправки, первая со значением, которое будет отклонено сервером, второе со значением, которое будет принято сервером. Скройте первый, используя CSS.
  • Попросите пользователя ответить на простую математическую задачу. Это потребует от вас проблемы с математикой и сохранения ожидаемого решения где-нибудь (например, сеанса пользователя), а затем сравните предоставленный ответ пользователя с сохраненным ответом. Для дополнительной защиты вы можете создавать простые вопросы сложения, вычитания и умножения. Избегайте разделения, остатки - это боль для некоторых пользователей.
  • Боты читают имена элементов формы и имеют тенденцию игнорировать текстовые метки. Попробуйте создать флажок «optout» (например, информационный бюллетень), по умолчанию проверен. Рядом с этим флажком попросите пользователя снять флажок, если они являются людьми. Противоположный метод также работает (снят флажок, который вы запрашиваете у пользователя).

Все эти решения могут быть выполнены без использования стороннего кода или вызовов API.

Это, как говорится, reCAPTCHA довольно хорошо и легко интегрировать в почти любой окружающей среды.

+0

Хотя я не согласен, мне нравится решение CSS, которое вы дали. – Seidr

+0

Две кнопки отправки могут заканчиваться тем, что пользователи, которые отправляют форму, нажимая клавишу Enter/Return, получают фальсификацию, потому что браузер может использовать (скрытое) первое значение отправки. Аналогично, поле скрытой формы CSS, скажем, URL, будет заполнено ботами, но оно также может быть заполнено автозаполнением формы. – amcgregor

0

Как насчет использования метода расчета? Так же, как 8 + 5 =?

ИЛИ

как об использовании ColdFusion.Ajax.submitForm?