Skip to content


Instalación de recaptcha

Si el otro día hablábamos de crear comentarios gracias al plugin acts_as_commentable, creo que convendréis conmigo en que nos dejamos una cosita en el tintero, ¿qué pasa con la seguridad? Existen infinidad de robots en internet que si ven un formulario y pueden utilizarlo, no dudarán en hacerlo. Por lo que nuestro sistema de comentarios está inconcluso: debemos protegerlo. Y que mejor manera que añadir Recaptcha para validar el envio de un comentario.

Paso uno e indispensable, instalación del plugin:

script/plugin install http://svn.ambethia.com/pub/rails/plugins/recaptcha

Si queréis, podéis utilizar la última versión del plugin, que está alojada ahora en github, por lo que si no habéis experimentado con git aún, os lo recomiendo como experiencia para empezar a utiliar git.

Por si os interesa lo anterior, el plugin ahora se encuentra en: http://github.com/ambethia/recaptcha.

Lo primero que os recomiendo es que vayáis a Recaptcha y obtengáis vuestras llaves, pública y privada, que hacen falta para poder utilizar el plugin; en mi caso ya las estaba utilizando en este blog. No os las pego por seguridad y porque no os servirían, dado que están asociadas a la url en cuestión.

Una vez las tenéis, deben ser añadidas a environment.rb de la forma:

ENV['RECAPTCHA_PUBLIC_KEY'] = 'tullavepublica'
ENV['RECAPTCHA_PRIVATE_KEY'] = 'tullaveprivada'

En la vista, para mostrarlo, sólo tendríamos que añadir:

<%= recaptcha_tags %>

en caso de estar utilizando ssl, deberéis cambiarlo a:

<%= recaptcha_tags :ssl => true %>

Y ahora en nuestro método de publicación, debéis comprobar la validez del Recaptcha, de la forma:

if verify_recaptcha
      ...
      else
      flash[:error] = "Ha habido un error en el envio."
      render :action => 'show'
    end

Nosotros lo utilizamos para publicar comentarios, por lo que el método en cuestión queda como sigue:

if verify_recaptcha
      @entry = Entry.find(params[:id])
      comment = Comment.new(params[:comment])
      @entry.add_comment comment
      comment.save!
      flash[:notice] = "Comentario añadido con éxito"
    else
      flash[:error] = "Ha habido un error en el envio del comentario."
    end
    redirect_to :action => 'show'

Pues nada, listo, ya tenéis validación con Recaptcha en vuestros comentarios.

Posted in Open Source, RubyOnRails, Tips & Tricks.

Tagged with , , .

You might also like

Cómo añadir tags a nuestros modelos Estoy seguro que más de una vez habéis visto nubes de tags en variedad de sitios webs, a la vez que...
Envio de mails utilizando Google Apps Tras haber instalado el plugin que nos posibilitaba tener comentarios e incluso protegerlos debidamente;...
Instalación del plugin: acts_as_commentable Este fin de semana he retomado mi idea de crear una herramienta para blogs, pero tenía la intención...
Nube de tags El otro día cuando hablábamos de poder taggear modelos, os puse el ejemplo de las nubes de tags que...
Grab This Widget

0 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.



Some HTML is OK

or, reply to this post via trackback.