google example ruby-on-rails captcha

example - Recomendaciones para un captcha en Ruby on Rails



recaptcha invisible required (7)

Me gustaría implementar un captcha en un proyecto de Rails para un envío de formulario, pero no estoy seguro de qué hacer. Me inclino por la simplicidad de implementación y la confiabilidad cuando estoy en uso, por ser demasiado sofisticado, ya que mi aplicación no requiere un nivel de seguridad demasiado alto.

¿Alguien tiene alguna recomendación?


Instalación

Agrega lo siguiente a tu GEMFILE

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

o

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

Luego ejecute bundle install si está usando Bundler (o use el administrador de paquetes para su configuración de Rails)

Preparar

Después de la instalación, siga estos sencillos pasos para configurar el complemento. La configuración dependerá de la versión de los rieles que esté utilizando su aplicación.

rails generate simple_captcha rake db:migrate

Uso

Controlador basado

Agregue la siguiente línea en el archivo "app / controllers / application.rb"

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

En el archivo de vista dentro de las etiquetas de formulario agregue este código

<%= show_simple_captcha %>

y en la acción del controlador autentificarlo como

if simple_captcha_valid? do this else do that end

Modelo basado

En el archivo de vista dentro de las etiquetas de formulario agregue este código

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

y en la clase modelo agregar este código

class User < ActiveRecord::Base apply_simple_captcha end

Ayudante de FormBuilder

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

Validando con captcha

NOTA: @ usuario.válido? seguirá funcionando como debería, no validará el código captcha.

@user.valid_with_captcha?

Ahorrar con captcha

NOTA: @ user.save seguirá funcionando como debería, no validará el código captcha.

@user.save_with_captcha

Integración formal

SimpleCaptcha detecta si usas Formtastic y anexa

“SimpleCaptcha::CustomFormBuilder”. <%= form.input :captcha, :as => :simple_captcha %>

Opciones y ejemplos

Ver opciones

*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’

Opciones globales

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

Hay ocho estilos diferentes disponibles con el complemento como ...

  1. simply_blue
  2. simplemente rojo
  3. simplemente_green
  4. gris carbón
  5. embosed_silver
  6. todo negro
  7. distorted_black
  8. casi_invisible

El estilo predeterminado es ''simply_blue''. También puede especificar ''aleatorio'' para seleccionar el estilo de imagen aleatorio.

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

* Crear "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

Puedes añadir tu propio estilo:

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

También puede proporcionar la ruta donde está instalado image_magick:

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

Puede proporcionar la ruta donde se deben almacenar los archivos tmp. Es útil cuando no tiene acceso a / tmp (directorio predeterminado)

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

¿Cómo cambiar el CSS de los elementos DOM de SimpleCaptcha?

Puede cambiar el CSS de los elementos de DOM SimpleCaptcha según su necesidad en este archivo.

* / app / views / simple_captcha / _simple_captcha.erb *

Ver ejemplos

Ejemplo basado en controlador

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

Ejemplo basado en modelo

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

Opciones de modelo

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.

Ejemplo de modelo

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


Bueno, ReCaptcha hará el trabajo y hay muchos tutoriales en línea.

Sin embargo, debe escribir un "def create" (método de creación) correcto en su controlador que pase todo lo que esté en su formulario y valide Recaptcha al mismo tiempo. Entonces funcionará muy bien.

Había un pequeño problema con eso. Después de insertar ReCaptcha en mi formulario, la validación del formulario dejó de funcionar. Sin embargo, se puede arreglar con un código fácil insertado en el archivo de modelo:

after_validation :on => :create

(: create = es el método "def create" en su controlador). Forzará el formulario para validar el formulario primero y luego validar Recaptcha.



He utilizado ambethia recapchat para la aplicación de rieles. más fácil que otro


La forma más fácil de agregar un CAPTCHA a su aplicación Rails es usar Ambethia reCAPTCHA :

1. Instalación:

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

También puedes instalarlo como un complemento, si quieres.

2. Obtenga una cuenta reCAPTCHA:

Tienes que crear una clave reCAPTCHA. Puedes hacerlo en el sitio reCAPTCHA .

3. Uso:

Utilice recaptcha_tags para generar el código HTML necesario y luego verifique la entrada con verify_recaptcha .

4. Lectura adicional:


Si está buscando un CAPTCHA que valide, y sea (casi) tan fácil de usar como reCAPTCHA, pruebe mi SlideCAPTCHA. (Lo escribí hace unos días, necesita algunas pruebas en el uso de la vida real). Basé su proceso de implementación en el complemento reCAPTCHA, pero puede diseñarlo con CSS.

Sin embargo, sí requiere Ruby / GD, así que si aún no tienes GD, ¡no puedo prometer que GD sea fácil de instalar y usar!


reCAPTCHA para rieles es excelente, en términos de funcionalidad. Sin embargo, si necesita validación de XHTML, ¡ejecute RAY AWAY! Este complemento no (y probablemente nunca) validará. Me parece vergonzoso que solo una página de todo mi sitio no se valide, es la página con reCAPTCHA. Si hubiera alguna otra opción, la tomaría.