Que es un captcha

Un Captcha ( acrónimo de Completely Automated Public Turing test to tell Computers and Humans Apart ), es un sistema de reconocimiento automático para diferenciar a máquinas y humanos, con este sistema comprobamos que quien está intentando acceder a nuestra aplicación es una persona física y no un sistema automatizado

Para que se utiliza

Principalmente, los captcha se utillizan en formularios web para evitar que los robots envien spam, pongan en peligro la seguridad de nuestra aplicación o inserten registros automáticos en nuestra aplicación con fines lucrativos.

Como se usa

Un captcha puede insertarse en varios lenguajes de programación, existen captcha multiplataforma, aunque la mayoria soportan PHP, que es la tecnologia con la que vamos a trabajar en este articulo, en la web podemos encontrar muchos servicios de este tipo, scripts gratuitos como Securimage o TheCAPTCHA, aunque el mas utilizado en Internet es reCAPTCHA, en este último vamos a basar este articulo.

reCAPTCHA

reCAPTCHA es un servicio gratuito de Google que usa un motor de análisis de riesgos diseñado para mantener a los robots fuera del alcance de nuestras aplicaciones web.

Registro

Lo primero que debemos hacer es ir a la Web oficial de reCaptcha y registrarnos, accedemos con nuestra cuenta de Google y a continuación pulsamos en “Get reCaptcha” para acceder al formulario de registro en el que debemos insertar en primer lugar una etiqueta (por ejemplo el nombre de nuestro sitio web) y nuestro dominio, a continuación pulsamos en registro.

 

Finalizado el proceso de registro reCAPTCHA la aplicación nos muestra las credenciales para utilizarlo en nuestro dominio de forma correcta, en primer lugar nos muestra las claves, la clave pública del sitio y la clave secreta

En segundo lugar nos ofrece las lineas de código necesarias para implementarlo en nuestro proyecto, un script para la cabecera y una etiqueta <div> con un atributo “data-sitekey” con la clave pública de nuestro sitio.

 

Cuando los usuarios de nuestra web envien un formulario en el que reCaptcha haya sido integrado, obtendremos una cadena llamada “g-recaptcha-response”, para comprobar si Google ha verificado al usuario, envía una solicitud GET con una serie de parámetros.

 

Instalación en el servidor

Para utilizar reCaptcha en PHP tenemos que descargar la libreria “reCaptcha-PHP-library” en este enlace, la descarga es un archivo .zip que incluye varios archivos y ejemplos, el archivo que nos interesa es “recaptchalib.php”, esta libreria debemos ponerla en la carpeta principal de nuestro proyecto para insertarla en el codigo.

 

Insertamos la libreria con un “require_once()” en el documento y creamos dos variables, “publickey” y “privatekey” a las cuales le asignamos respectivamente el valor de las claves publica y privada que Google nos ha proporcionado como vimos anteriormente.

<?php
	require_once('recaptchalib.php');
	$publickey = "Tu_clave_publica";
	$privatekey = "Tu_clave_secreta";
	$resp = null;
?>

En el formulario insertamos un PHP en el que llamamos a la función “recaptcha_get_html()” incluida en la libreria pasandole el parametro “publickey”.

<?php
	echo recaptcha_get_html($publickey);
?>

Validar el captcha

La mejor forma de llevar a cabo la validación del captcha es comprobando con un “if()” si se ha recibido algo por POST, a continuación asignamos a la variable “resp” el objeto “recaptcha_check_answer” que nos retorna los valores con los argumentos que tiene que recibir, creamos dentro otro if en el que “is_valid” nos devolverá un valor booleano (FALSE / TRUE), si “resp->is_valid” nos devuelve TRUE, la verificación es correcta y se puede continuar con la ejecución del codigo, si “resp->is_valid” nos devuelve FALSE la verificación es incorrecta y se debe detener la ejecución del codigo.

if ($_POST) {
	$resp = recaptcha_check_answer ($privatekey, 
	$_SERVER["REMOTE_ADDR"],
	$_POST["recaptcha_challenge_field"],
	$_POST["recaptcha_response_field"]);
	if ($resp->is_valid) {
	echo "CORRECTO";
	} else {
		echo "CAPTCHA INCORRECTO";
	}
}

El ejemplo de todo este código puedes verlo y probarlo al inicio de este articulo, puedes ver y descargar el codigo completo en mi cuenta de Github, gracias por visitar esta web

Valoraciones


Sé el primero en valorar

* Tu valoración puede tardar hasta 72 horas en publicarse.

He leido y acepto el Aviso legal y condiciones de uso

Utilizamos cookies propias y de terceros para personalizar el contenido y los anuncios, ofrecer funciones de medios sociales y analizar el tráfico. Además compartimos información sobre el uso que haces de nuestra web con nuestros partners de medios sociales, de publicidad y de análisis web. Si continúas navegando estás dando tu consentimiento para la aceptación de nuestra Política de cookies.

ACEPTAR
Aviso de cookies