rails-выбор плагина captcha [закрыт]

в Rails есть много плагинов captchas, а также много типов решений для предотвращения спама и наводнения. Так что это не только вопрос рельсов.

давайте посмотрим, какие типы плагинов у нас есть:

1. Классический image captcha (Zendesk для капчи, Simple_captcha, Validates_captcha,капча Винтона, Raptcha).

плюсы:

  • может быть эффективно предотвратить автоматическое дешифрование (не уверен в Simple_captcha, но кажется, что капчи zendesk и winton не достигают этого, поскольку они используют предварительно сгенерированные изображения (вместо on-demand), поэтому наши возможные спам-боты могут быть изучены на этих изображениях).

отрицательные:

  • требуется таблица DB (по крайней мере, простая капча. Не так уж плохо, но чистят ли его после использования?).
  • Require RMagick или аналогичный (не так актуально для меня, как у меня уже есть это на моем сайте).
  • сбой ручного дешифрования ($2/1000 изображений, как я знаю).
  • раздражает пользователей и может повредить коэффициенты конверсии.

2. Рекапчи (Recaptcha, Rack-recaptcha).

плюсы:

  • может быть эффективным для предотвращения автоматической расшифровки.
  • не требуется таблица Rmagick и DB.

отрицательные:

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

3. Медовые горшки (отрицательный-captcha, Trap_door, Reverse_captcha, Honeypot-captcha, Bouncy_bots,invisible_captcha).

плюсы:

  • пользователь не знает о наличие капчи.
  • не требуется Rmagick и DB таблица.

отрицательные:

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

4. Text-base (Гуманизатор, Brain_buster, Gotcha).

плюсы:

  • не требует таблицы Rmagick и DB (за исключением Brain_buster).

отрицательные:

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

5. Другое (Acts_as_snook)

плюсы:

  • пользователь не знает о наличие капчи.
  • не требуется Rmagick и DB таблица.

отрицательные:

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

6. Akismet-подобные решения (не знаю об их эффективности).

плюсы:

  • пользователь не знает о наличие капчи.
  • не требуется Rmagick и DB таблица.

отрицательные:

  • сделать api-звонки на сторонний сайт.
  • доставить данные пользователя на сторонний сайт (очень, очень плохо).

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

2 ответов


Flooding-это другая проблема, чем спам. Вы обязательно должны построить логику вокруг ограничения скорости в своем приложении, вы можете сделать это с помощью проверки, чтобы проверить, что пользователь, например, не разместил более 2 заказов за последние 15 минут.

в отношении captchas любой из плагинов, которые вы выбираете, скорее всего, будет отличным. Я бы не думал о том, чтобы устанавливать RMagick как положительный или отрицательный, на самом деле это не так сложно. Если бы это был я выбирая, моим первым инстинктом было бы пойти с recaptcha, это наименее раздражает их всех.

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

наконец, современные боты очень сложные. Гораздо более изощренный, чем любой из нас, вероятно, ожидает. Они могут полностью автоматизировать браузеры, использовать OCR для чтения captcha текст и генерировать спам-контент, который будет обходить даже самые сложные фильтры. Тем не менее, речь идет не о "остановке всех спама/ботов", а о том, чтобы сделать барьер для входа достаточно высоким, чтобы это не стоило для случайного пользователя.


хороший анализ существующих плагинов.

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

Мне пришлось просеять все рельсы captcha опции для проекта, и написал образец приложения для моего клиента, чтобы проверить и опробовать. simple-captcha-demo.heroku.com

все они были довольно просты в использовании и настройке, и мне нравится использовать heroku в качестве тестового стенда, чтобы быстро настроить что-то и позволить клиенту проверить это. Я также написал некоторые из моего опыта и gotchas на моем блоге RailsPerformance.com

могут быть новые плагины, всегда хорошо видеть, что тренд на www.ruby-toolbox.com