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