Seguridad: ¿Cómo instalar un captcha en un formulario?

Supervisor
Supervisor
  • Actualización

¿Qué es un captcha?

Un Captcha (Completely Automated Public Turing test to tell Computers and Humans Apart) es una medida de seguridad que se utiliza para comprobar si el usuario es humano o un robot. Consiste en presentar una imagen distorsionada con un conjunto de caracteres que el usuario debe ingresar correctamente. Esta medida se utiliza principalmente en formularios de contacto para evitar que los robots, conocidos como spambots, puedan utilizar ciertos servicios. Dado que las máquinas no son capaces de comprender e ingresar la secuencia de caracteres de manera precisa, solo los humanos pueden superar esta prueba.
Antes de la introducción de los Captchas, era común que los robots ingresaran a cuentas de correo electrónico al probar diferentes combinaciones de nombres de usuario y contraseñas hasta encontrar las correctas. Una vez dentro, utilizaban esas cuentas y sus contactos para enviar información comercial indeseable sin restricciones.
Con la implementación de esta medida de seguridad, es muy difícil que terceros puedan hacer uso indebido de tus cuentas de correo.

¿Cómo instalar un captcha en un formulario?

Si quieres instalar captcha en un formulario de contacto, te brindamos a continuación un código para que puedas utilizarlo insertarlo en el código fuente de tu sitio web.

En HTML

Cópialo y pégalo en el archivo contacto.html

<?php

session_start();

$Captcha = (string) $_POST["CAPTCHA_CODE"];

if(sha1($Captcha) != $_SESSION["CAPTCHA_CODE"]) {

echo “<p style=’color: #ff0000;’><strong>El código de

validación no ha sido ingresado o es incorrecto.</strong></p>”;

} else

{

// se agrega el código que usted utiliza para enviar

header (“Location: http://www.tudominio/ok.html”);

}

?>

<form name=’enviar’ method=’POST’ action=’?PHP echo $PHP_SELF ?>’>

<table>

<tr><td><label>Código de seguridad:</label></td></tr>

<tr><td><img src=”captcha.php” /></td></tr>

<tr><td> <input type=”text” name=”CAPTCHA_CODE” style=”width: 50px;”

/></td></tr>

<p style=”padding-top: 5px;”>

<tr><td><input type=”submit” name=”enviar” value=”Enviar Mensaje”

/></td> <td><input type=”reset” name=”enviar” value=”Borrar datos”

/></td></tr>

</p>

</table>

En PHP

Archivo del captcha php

<?php

session_start();

// Genero el codigo y lo guardo en la sesión para consultarlo luego.

$captchaCode = substr(sha1(microtime() * mktime()), 0, 6); //

mktime()), 0, esto es el número de caracteres a mostrar, aca muestra 6);

$_SESSION['CAPTCHA_CODE'] = sha1($captchaCode);

// Genero la imagen

$img = imagecreatetruecolor(70, 25); // (largo, alto) imagen

// Colores

$bgColor = imagecolorallocate($img, 230, 230, 230); // color de fondo

$stringColor = imagecolorallocate($img, 90, 90, 90); // color letra

$lineColor = imagecolorallocate($img, 245, 245, 245); // color lineas

// Fondo colores

imagefill($img, 0, 0, $bgColor);

imageline($img, 0, 5, 70, 5, $lineColor);

imageline($img, 0, 10, 70, 10, $lineColor);

imageline($img, 0, 15, 70, 15, $lineColor);

imageline($img, 0, 20, 70, 20, $lineColor);

imageline($img, 12, 0, 12, 25, $lineColor);

imageline($img, 24, 0, 24, 25, $lineColor);

imageline($img, 36, 0, 36, 25, $lineColor);

imageline($img, 48, 0, 48, 25, $lineColor);

imageline($img, 60, 0, 60, 25, $lineColor);

// Se escribe el código

imageString($img, 5, 8, 5, $captchaCode, $stringColor); // ($ing,

tamaño, hacia la derecha, hacia abajo)

// Imagen de salida

header(“Content-type: image/png”);

imagepng($img);

?>

¡Listo! Una vez que hayas integrado los códigos en tus archivos, verás el Captcha en tu formulario de contacto, lo que ayudará a protegerlo de bots y mantener la seguridad de tus servicios en línea:

 

¿Fue útil este artículo?

Usuarios a los que les pareció útil: 1 de 1

¿Tiene más preguntas? Enviar una solicitud