Запретить автоматическим роботам отправлять формы в приложение ruby ​​on rails?

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

У меня есть бета-форма регистрации со скрытым полем и полем для имени пользователя и пароля. Этот get отправляется много раз в день и приводит к сообщениям об ошибках в моем приложении rails.

Есть ли достойный способ предотвратить отправку моих форм роботами? Я знаю, что вы можете делать всевозможные вещи в интерфейсе, но большинство трюков, похоже, терпят неудачу (я использую трюк со скрытым полем для проверки роботов, но они все равно передают там беспорядок)

ИЗМЕНИТЬ №1:

Добавление данных формы, размещенных автоматическим роботом. Кажется, он публикует дополнительные поля формы, даже если они не присутствуют в форме.

  • URL: http://mysite.com/beta * IP-адрес: 91.121.170.197 * Параметры: {"utf8" => "✓", "Authentity_token" => "8mvHnQgX0krwnymdOeQgd8AP52H / ZrJKjnKcUBGrcMM =", "betum" => {"code" => ""}, "name" => "Bryan", "email" => "quaker @ yahoo.com "," commit "=>" Joignez-vous  »", "comment" => "Мне нужно зарядить свой телефон http://pposchool.com/classes/ \"> desirel 50 при условии, что больше не будет более двух ротаций связаны с оказанием немедицинской помощи \ n http://sdccpa.com/professionals \ "> Цель 6 по расходам на ингалятор Proventil Hfa: содействие общественному здравоохранению и профилактика заболеваний. \ n http://hunterdk.com/ products-2 / \ "> стоимость лечения кломидом uk 12. Отображает эффективное невербальное поведение (зрительный контакт, язык тела, \ n", "action" => "create", "controller" => "beta"} * Rails root: / srv / myapp / current * Отметка времени: 2013-09-03 17:34:10 +0200

person Rubytastic    schedule 03.09.2013    source источник
comment
это неправда .. это через   -  person beck03076    schedule 03.09.2013
comment
Исправьте свое приложение! (если это вызывает ошибки) Это не первый раз, когда вы задаете действительно странный вопрос, и мне интересно, что вы там делаете!   -  person Mike Szyndel    schedule 03.09.2013
comment
Я провожу базовую проверку ввода формы в своем коде, но все равно не получается. Ваше право. Я мог бы добавить лучшую проверку значения формы в свой код, например, ограничить имена до 12 символов и уже проверять формат электронной почты, если он правильный. Хотя данные все еще публикуются, проблема заключается в том, что не знаю, как они это делают, я публикую журнал ошибок в вопросе   -  person Rubytastic    schedule 03.09.2013


Ответы (3)


Как насчет использования captcha в форме.

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

person usha    schedule 03.09.2013
comment
Я не хотел использовать капчу, но не упомянул об этом в своем вопросе. Хотя, похоже, нет другого реального решения, возможно, для предотвращения отправки формы без него. - person Rubytastic; 03.09.2013
comment
Это кажется несовместимым с rails 4, его можно сделать совместимым, но что-то, что работает «из коробки», было бы предпочтительнее, если бы я пошел этим путем, это - решение, но не тот путь, которым я хочу идти. - person Rubytastic; 03.09.2013
comment
Я не буду добавлять ни одного, но кажется лучшим решением. Я пока оставляю все как есть, а позже займусь добавлением капчи в мою форму подписки на бета-версию. Это косметический белый цвет - person Rubytastic; 19.09.2013

Трудно понять самую последнюю часть вашего вопроса ... Мне интересно, заполняется ли скрытое поле роботами или оно остается пустым (как это сделал бы реальный пользователь).

Если он постоянно заполняется, почему бы просто не отклонить любую форму, которая содержит значение в этом скрытом поле?

person Meltemi    schedule 03.09.2013

Captcha - это тяжелый молоток, и его следует использовать в крайнем случае. Это ваш UX. Если robots.txt не работает, занесите в черный список IP-адреса, используя Rack Attack. Rack Attack предлагает всевозможные крутые способы фильтрации нежелательного трафика, ограничения скорости и т. Д.

person Tim Scott    schedule 06.02.2015