Noticias Weblogs Foros Wiki Código
Sponsors:

Meta-Info

¿Que es?

Planeta Código es un agregador de weblogs sobre programación y desarrollo en castellano. Si eres lector te permite seguirlos de modo cómodo en esta misma página o mediante el fichero de subscripción.

rss subscripción

Sponsors

PlanetaCódigo en inglés

Puedes utilizar las siguientes imagenes para enlazar PlanetaCodigo:
planetacodigo

planetacodigo

Si tienes un weblog de programación y quieres ser añadido aquí, envíame un email solicitándolo.

Idea: Juanjo Navarro

Diseño: Albin

jenaiz.com - RubyOnRails

Instalación de recaptcha

Julio 31st, 2008 - [Enlace local]

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.

» Leer más, comentarios, etc...