development Рекомендации по captcha на Ruby on Rails



rails invisible recaptcha (6)

reCAPTCHA для рельсов отлично работает с точки зрения функциональности. Однако, если вам нужна проверка XHTML, ПРОПУСТИТЕ! Этот плагин не проверяет (и, вероятно, никогда не будет). Мне неловко, что только одна страница на моем сайте не проверяется - это страница с reCAPTCHA. Если бы был ЛЮБОЙ другой выбор, я бы взял его.

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

У кого-нибудь есть рекомендации?



Answer #2

Самый простой способ добавить CAPTCHA к вашему Rails-приложению - использовать Ambethia reCAPTCHA :

1. Установка:

config.gem "ambethia-recaptcha", :lib => "recaptcha/rails", 
      :source => "http://gems.github.com"

Вы можете установить его как плагин, если хотите.

2. Получите учетную запись reCAPTCHA:

Вы должны создать ключ reCAPTCHA. Вы можете сделать это на сайте reCAPTCHA .

3. Использование:

Используйте recaptcha_tags для вывода необходимого HTML-кода, а затем проверьте ввод с помощью verify_recaptcha .

4. Дальнейшее чтение:


Answer #3

если вы после CAPTCHA, который проверяет и (почти) так же прост в использовании, как reCAPTCHA, попробуйте попробовать SlideCAPTCHA. (Написал это несколько дней назад, нуждается в некоторых тестах в реальном использовании.) Я основал процесс его развертывания в плагине reCAPTCHA, но вы можете создать его с помощью CSS.

Однако это требует Ruby / GD, поэтому, если у вас еще нет GD, я не могу обещать, что GD прост в установке и использовании!


Answer #4

Монтаж

Добавьте следующее в свой GEMFILE

gem "galetahub-simple_captcha", :require => "simple_captcha"

или же

gem 'galetahub-simple_captcha', :require => 'simple_captcha',
    :git => 'git://github.com/galetahub/simple-captcha.git'

Затем запустите bundle install если вы используете Bundler (или используйте диспетчер пакетов для вашей конфигурации Rails)

Настроить

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

rails generate simple_captcha
rake db:migrate

использование

На основе контроллера

Добавьте следующую строку в файл «app / controllers / application.rb»

ApplicationController < ActionController::Base
  include SimpleCaptcha::ControllerHelpers
end

В файле вида в тегах формы добавьте этот код

<%= show_simple_captcha %>

и в действии контроллера аутентифицировать его как

if simple_captcha_valid?
  do this
else
  do that
end

На основе модели

В файле вида в тегах формы добавьте этот код

<%= show_simple_captcha(:object=>"user") %>

и в классе модели добавьте этот код

class User < ActiveRecord::Base
  apply_simple_captcha
end

Помощник FormBuilder

<%= form_for @user do |form| -%>
  ...
  <%= form.simple_captcha :label => "Enter numbers.." %>
  ...
<% end -%>

Проверка с помощью captcha

ПРИМЕЧАНИЕ: @ user.valid? все равно будет работать так, как должно, он не будет проверять код подписи.

@user.valid_with_captcha?

Сохранение с капчей

ПРИМЕЧАНИЕ. @ User.save все равно будет работать так, как должен, он не будет проверять код подписи.

@user.save_with_captcha

Форматическая интеграция

SimpleCaptcha обнаруживает, использует ли ваше приложение Formtastic и добавляет

“SimpleCaptcha::CustomFormBuilder”.

<%= form.input :captcha, :as => :simple_captcha %>

Варианты и примеры

Опции просмотра

*label* - provides the custom text b/w the image and the text field, the default is “type the code from the image”

*object* - the name of the object of the model class, to implement the model based captcha.

*code_type* - return numeric only if set to ‘numeric’

Глобальные параметры

image_style - provides the specific image style for the captcha image.

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

  1. simply_blue
  2. просто красный
  3. simply_green
  4. угольно-серый
  5. embosed_silver
  6. полностью черный
  7. distorted_black
  8. almost_invisible

Стиль по умолчанию - «просто_blue». Вы также можете указать «random», чтобы выбрать стиль случайного изображения.

distortion - handles the complexity of the image. The :distortion can be set to ‘low’, ‘medium’ or ‘high’. Default is ‘low’.

* Создать "rails_root / config / initializers / simple_captcha.rb" *

SimpleCaptcha.setup do |sc|
  # default: 100x28
  sc.image_size = '120x40'

  # default: 5
  sc.length = 6

  # default: simply_blue
  # possible values:
  # 'embosed_silver',
  # 'simply_red',
  # 'simply_green',
  # 'simply_blue',
  # 'distorted_black',
  # 'all_black',
  # 'charcoal_grey',
  # 'almost_invisible'
  # 'random'
  sc.image_style = 'simply_green'

  # default: low
  # possible values: 'low', 'medium', 'high', 'random'
  sc.distortion = 'medium'
end

Вы можете добавить свой собственный стиль:

SimpleCaptcha.setup do |sc|
  sc.image_style = 'mycaptha'
  sc.add_image_style('mycaptha', [
      "-background '#F4F7F8'",
      "-fill '#86818B'",
      "-border 1",
      "-bordercolor '#E0E2E3'"])
end

Вы можете указать путь, в котором также установлен image_magick:

SimpleCaptcha.setup do |sc|
  sc.image_magick_path = '/usr/bin' # you can check this from console by running: which convert
end

Вы можете указать путь, где должны храниться tmp-файлы. Это полезно, если у вас нет доступа к / tmp (каталог по умолчанию)

SimpleCaptcha.setup do |sc|
  sc.tmp_path = '/tmp' # or somewhere in project eg. Rails.root.join('tmp/simple_captcha').to_s, make shure directory exists
end

Как изменить CSS для элементов DOM SimpleCaptcha?

Вы можете изменить CSS элементов SimpleCaptcha DOM в соответствии с вашими потребностями в этом файле.

* / Приложение / просмотров / simple_captcha / _simple_captcha.erb *

Примеры просмотра

Пример на основе контроллера

<%= show_simple_captcha %>

<%= show_simple_captcha(:label => "human authentication") %>

Пример модели

<%= show_simple_captcha(:object => 'user', :label => "human authentication") %>

Параметры модели

message - provides the custom message on failure of captcha authentication the default is “Secret Code did not match with the Image”

add_to_base - if set to true, appends the error message to the base.

Пример модели

class User < ActiveRecord::Base
  apply_simple_captcha
end

class User < ActiveRecord::Base
  apply_simple_captcha :message => "The secret Image and code were different", :add_to_base => true
end

Answer #5

Я использовал ambetia recapchat для приложения rails. это наиболее легко, чем другие





captcha