Создание приманки на регистрационной форме - PullRequest
0 голосов
/ 28 февраля 2012

Я пытаюсь использовать этот гем для создания поля приманки, но я не уверен, как это реализовать.Как форма узнает, какое поле сделать приманку и где я могу указать метку?Вот код, который я использовал для поля, однако при запуске приложения форма кажется видимой:

= form_for(:invitation, :url => request_invite_path, :html => {:id => 'login_form', :honeypot => true}) do |form|
      = form.text_field :email, :size => nil
      = form.text_field :honeypot #This field was created to store the honeypot input
      %button{:type => "submit"} Request Invite

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

Есть ли способ пропустить моделии все еще использовать поле honeypot, чтобы принять или отклонить приглашение?На самом деле мне не нужно хранить данные honeypot, но мне нужно использовать их, чтобы решить, следует ли принимать приглашение.

Так что это должно работать так:

  1. Пользователь попадает на целевую страницу
  2. Пользователь видит регистрационную форму, состоящую из
    1. поля ввода адреса электронной почты
    2. скрытого поля honeypot
  3. Если бот регистрируется, он заполняет honeypot, поэтому при создании приглашения я могу автоматически принять те, которые не заполняют honeypot, а те, которые это сделают, будут отклонены.

Еще одна вещь, как я могу проверить поле honeypot, чтобы увидеть, работает ли оно?Я хочу заполнить его и посмотреть, выполняет ли мой код то, что должен.

Ответы [ 3 ]

1 голос
/ 29 февраля 2012

Извините, вы не поняли мой предыдущий ответ, я перефразирую его

Итак, из того, что я получил, у вас есть форма целевой страницы, в которой пользователь должен ввести адрес электронной почты, иесть приманка для фильтрации ботов.

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

  2. когда вы добавляете текстовое поле в форму и хотите, чтобы оно было невидимым, вынужно сделать его невидимым самостоятельно (вот так работают текстовые поля)

  3. если вы используете honeypot для фильтрации ботов, когда бот отправляет форму контроллеру и заполняети электронную почту, и honeypot, который вы просто добавляете before_filter :check_honeypot, и в этой функции проверяете, является ли поле honeypot пустым или нет, а если нет, то у вас есть бот, верно?поэтому отклоните его автоматически

0 голосов
/ 03 января 2013

Обратитесь к этому руководству по работе с honeypot как на стороне клиента, так и на стороне сервера. Безопасные формы и комментарии от ботов, использующих Honeypot

0 голосов
/ 05 марта 2012

Итак, из того, что я получил, у вас есть форма целевой страницы, в которой пользователь должен ввести адрес электронной почты, и есть приманка для фильтрации ботов.

  1. Если вы используете этот драгоценный камень, вы увидите, что вам не нужно добавлять Сами поля приманки для формы. Когда вы реализуете это с :honeypot => true в параметрах HTML, он автоматически создает скрытое текстовое поле с соответствующей меткой для доступности.

  2. Если вы используете приманку для фильтрации ботов, когда бот отправляет форма для контроллера, и заполнил как электронную почту, так и honeypot, вы просто добавляете before_filter :protect_from_spam. Если Вы хотите сделать что-то особенное в этой функции, которую вы можете переопределить его значения по умолчанию также находятся в контроллере.

  3. Вы можете проверить это, проверив элемент в браузере (с помощью Firebug на Firefox например) просто изменив css display: из honeypot от одного до встроенного. Таким образом, вы можете заполнить это поле и посмотрим, что происходит, когда вы делаете, фактически не меняя код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...