¿CĂłmo instalar un buen captcha de Seguridad?
Pasos para implementar reCAPTCHA
http://recaptcha.net/
1.- ¿QuĂ© es reCAPTHCA?
2.- Manual de instalaciĂłn de reCAPTCHA
3.- Personalizacion del theme
1.- ¿Que es CAPTCHA?
Captcha
es el acrĂłnimo de Completely Automated Public Turing test to tell
Computers and Humans Apart (Prueba de Turing pública y automática para
diferenciar a máquinas y humanos).
Este es un tĂpico test para la
secuencia “smwm” que dificulta el reconocimiento de la máquina rotando
las letras y añadiendo un gradiente de fondoSe trata de una prueba
desafĂo-respuesta utilizada en computaciĂłn para determinar cuándo el
usuario es o no humano. El término se empezó a utilizar en el año 2000
por Luis von Ahn, Manuel Blum y Nicholas J. Hopper de la Carnegie Mellon
University, y John Langford de IBM.
La tĂpica prueba consiste en
que el usuario introduzca un conjunto de caracteres que se muestran en
una imagen distorsionada que aparece en pantalla. Se supone que una
máquina no es capaz de comprender e introducir la secuencia de forma
correcta por lo que solamente el humano podrĂa hacerlo (salvo error).
Como
el test es controlado por una máquina en lugar de un humano como en la
Prueba de Turing, también se denomina Prueba de Turing Inversa.
Los
Captchas son utilizados para evitar que robots, también llamados
spambots, puedan utilizar ciertos servicios. Por ejemplo, para que no
puedan participar en encuestas, registrarse para usar cuentas de correo
electrĂłnico (o su uso para envĂo de correo basura) o, más recientemente,
para evitar que correo basura pueda ser enviado por un robot (el
remitente debe pasar el test antes de que se entregue al destinatario).
reCAPTCHA PLUGIN GRATIS ANTI SPAMBOTS
Existen
tres formas de uso reCAPTCHA: mediante un plugin de aplicaciĂłn,
utilizando una biblioteca para su lenguaje de programaciĂłn, y el uso de
la web basados en la API. Los siguientes recursos le ayudará a encontrar
el método correcto para su entorno.
Cliente API
El cliente API guĂa describe cĂłmo personalizar el comportamiento de la
reCAPTCHA widget en su sitio. Esta guĂa se aplica a todos los plugins.
Entorno de programaciĂłn plugins
•
PHP •
ASP.NET •Classic ASP: vĂ©ase este
foro •
Python •Perl (aportados por Andy Armstrong)
•
Ruby (aportados por McClain Looney)
•Otro
Ruby biblioteca de Jason Perry L
•
Java (aportados por Soren)
•
ColdFusion (aportados por Robin Hilliard)
AplicaciĂłn complementos •
WordPress •
MediaWiki •
phpBB •Movable Type (aportados por Josh Carter)
•
Drupal (aportados por Rob Loach)
•
Symfony (aportado por Arthur Koziel)
•
Typo3 (aportados por Jens Mittag. Véase también el ejemplo de utilizar el plugin)
•
NucleusCMS (aportados por Matt)
•
vBulletin (aportados por Magnus)
•
Joomla (aportados por Robert van den Breemen)
•
Mailhide JSP (por Tamas Magyar)
DocumentaciĂłn API Estos documentos describen el bajo nivel
reCAPTCHA API. Usted debe de referencia estos documentos si está creando un nuevo plugin
Comunidad reCAPTCHA Foro: un lugar donde usted puede hacer preguntas sobre reCAPTCHA y complementos
reCAPTCHA Wiki: un lugar para publicar cualquier informaciĂłn relacionada con la reCAPTCHA
reCAPTCHA en Google Code: muchos plugins que se desarrollan. PregĂşntele a nosotros para acceder a ellos.
2.- MANUAL DE INSTALACION reCAPTCHA
Paso 1: Registrarse en reCAPTCHA
Nos tenemos que dirigir a
http://recaptcha.net/ y registrarnos como usuarios. Nos solicitarán unos pocos datos personales para darnos de alta.
Una
vez registrados debemos obtener unas claves para utilizar el sistema de
captcha. Estas claves son especĂficas para cada dominio donde quieras
utilizarlo. Las claves no son más que una llave pública y otra privada,
que utilizaremos luego para poner la captcha en nuestra web.
Son algo como esto:
Public Key: 5LfCABCDEFGHIJUNDSBOejHq-5n5StSWawBpCAMX
Private Key: 6LfCAAAFHJSDFGHHJHDeju3a-Z5lomjShHKaGh9g
Esas claves son, lĂłgicamente, secretas y debemos mantenerlas asĂ. Las claves anteriores son de ejemplo.
En
el sitio de reCAPTCHA tendremos que descargarnos unos cĂłdigos PHP con
una librerĂa PHP para poner en nuestro servidor y unos ejemplos de uso
del sistema. Esto lo podemos conseguir en el apartado “Resources”.
Veremos que tienen un plugin o librerĂa para trabajar con PHP, que
además está perfectamente documentado.
Una vez descargado el zip
que contiene la librerĂa PHP, la tenemos que poner en algĂşn lugar de
nuestro servidor. Recuerda luego donde la has puesto, porque tendrás que
hacer un include con PHP de esa librerĂa.
Por ejemplo, podrĂamos
colocar dicha librerĂa en el mismo directorio donde está la página PHP
que va a hacer uso de ella. Entonces la incluirĂamos con algo como esto:
1 | require_once ( 'recaptchalib.php' ); |
Paso 2: Incluir el captcha en el formulario
En
la librerĂa descargada (‘recaptchalib.php’) Hay una funciĂłn que sirve
para mostrar la captcha. Simplemente tenemos que llamarla con los
parámetros correctos. La función devuelve el código HTML que tenemos que colocar en la página para que se vea la captcha.
1 | recaptcha_get_html( $captcha_publickey , $error_captcha ); |
Los
parámetros que recibe son la llave pública que conseguimos
anteriormente y un cĂłdigo de error, que es opcional. Luego veremos de
dĂłnde podrĂa venir ese cĂłdigo de error.
El cĂłdigo del formulario serĂa algo como esto:
2 | require_once ( 'recaptchalib.php' ); |
4 | $captcha_publickey = "xxxxxxxxxxxxxxxxxxxxxxx" ; |
5 | $captcha_privatekey = "yyyyyyyyyyyyyyyyyyyyyy" ; |
10 | <form action= "miejemplo_formulario.php" method= "post" > |
11 | Nombre: <input type= "text" name= "nombre" size= "30" > |
12 | Edad: <input type= "text" name= "edad" size= "3" > |
16 | echo recaptcha_get_html( $captcha_publickey , $error_captcha ); |
19 | <input type= "submit" value= "Enviar" > |
Paso 3: Validar la captcha
Existe
otra funciĂłn para validar la captcha, llamada recaptcha_check_answer().
Esta función recibe también varios parámetros: La llave privada, la IP
del usuario, y dos campos que contienen los valores que envĂa la captcha
dentro del formulario $_POST["recaptcha_challenge_field"] y
$_POST["recaptcha_response_field"].
Esta funciĂłn devuelve un objeto que tiene dos propiedades:
is_valid,
un boleano para decir si es se ha validado correctamente la captcha.
error, un código de error que especifica qué ha ido mal si no se validó
correctamente el texto.
PodrĂamos validar la captcha con algo como esto:
2 | $captcha_respuesta = recaptcha_check_answer ( $captcha_privatekey , |
3 | $_SERVER [ "REMOTE_ADDR" ], |
4 | $_POST [ "recaptcha_challenge_field" ], |
5 | $_POST [ "recaptcha_response_field" ]); |
6 | if ( $captcha_respuesta ->is_valid) { |
11 | $error_captcha = $captcha_respuesta ->error; |
Llamamos
a la función recaptcha_check_answer() enviando los parámetros
comentados y guardamos el valor devuelto por la funciĂłn en la variable
$captcha_respuesta.
Luego comprobamos si el atributo
$captcha_respuesta->is_valid es true. En ese caso sabemos que el
texto escrito de la imagen se ha validado correctamente y hacemos lo que
haya que hacer en el formulario.
Si
$captcha_respuesta->is_valid era falso, entonces quiere decir que no
estaba bien escrito el texto de la imagen. Podemos entonces actualizar
la variable $error_captcha para que cuando mostremos de nuevo la captcha
podamos pasarle el error generado y que avise al usuario.
Tenemos nuestra captcha funcionando!
El cĂłdigo completo de este ejemplo es el siguiente:
3 | <title>Página con formulario protegido por captcha</title> |
8 | require_once ( 'recaptchalib.php' ); |
10 | $captcha_publickey = "xxxxxxxxxxxxxxxxxxxxxxx" ; |
11 | $captcha_privatekey = "yyyyyyyyyyyyyyyyyyyyy" ; |
15 | $captcha_respuesta = recaptcha_check_answer ( $captcha_privatekey , |
16 | $_SERVER [ "REMOTE_ADDR" ], |
17 | $_POST [ "recaptcha_challenge_field" ], |
18 | $_POST [ "recaptcha_response_field" ]); |
19 | if ( $captcha_respuesta ->is_valid) { |
25 | echo "Has escrito mal el texto" ; |
26 | $error_captcha = $captcha_respuesta ->error; |
31 | <form action= "miejemplo_formulario.php" method= "post" > |
32 | Nombre: <input type= "text" name= "nombre" size= "30" > |
34 | Edad: <input type= "text" name= "edad" size= "3" > |
38 | echo recaptcha_get_html( $captcha_publickey , $error_captcha ); |
41 | <input type= "submit" value= "Enviar" > |
3.-PERSONALIZACION DEL THEME
Lo importante son la configuraciĂłn inicial mediante la variable RecaptchaOptions, las funciones de javascript
para las distintas acciones(Recaptcha.reload(),
Recaptcha.switch_type(‘audio’), Recaptcha.showhelp()), el id del div
donde va el captcha (recaptcha_image) y el input donde se escribe el
captcha
1 | < input type = "text" id = "recaptcha_response_field" name = "recaptcha_response_field" /> |
2 | var RecaptchaOptions = { |
5 | custom_theme_widget: 'frm_recpatcha' |
8 | < div class = "frm_recpatcha" > |
9 | < div class = "frm_recaptcha_img" id = "recaptcha_image" > |
10 | < img width = "307" height = "55" alt = "Captcha" title = "Captcha" class = "captcha" src = "/img/recaptcha.gif" alt = "RECAPTCHA" /> |
13 | < img src = "/imgs/recaptcha_buttons.gif" width = "26" height = "57" alt = "Captcha" title = "Captcha" style = "float:left;margin:0 auto; display:block;" /> |
14 | < p style = "margin:5px 10px;" >< a href = "javascript:Recaptcha.reload()" class = "azul" >Recargar</ a ></ p > |
15 | < p style = "margin:5px 10px;" >< a href = "javascript:Recaptcha.switch_type('audio')" class = "azul" >Audio</ a ></ p > |
16 | < p style = "margin:5px 10px;" >< a href = "javascript:Recaptcha.showhelp()" class = "azul" >Ayuda</ a ></ p > |
17 | < p >< label style = "" >Introduce las 2 palabras de la imagen:</ label ></ p > |
18 | < input type = "text" id = "recaptcha_response_field" name = "recaptcha_response_field" name = "#" maxlength = "100" class = "intro_captcha" /> |
20 | echo recaptcha_get_html($captcha_publickey, $error_captcha); |
Tags de bĂşsquedas:
captcha
javascript,como poner un captcha,poner captcha,poner captcha en mi
web,cĂłmo instalar una recaptcha en formulario,implementar captcha
jsp,poner captcha en formulario,poner el camptcha en un
<img>,simple captchas para mi web