Sencillo sistema AntiBot en PHP con preguntas
Escrito por Alex Barros Seguramente ya conoceréis el clásico sistema Anti Robots que consiste en hacer una pregunta que requiera del “razonamiento humano“. Este sistema puede ser construido de una forma sencillísima con PHP, y os muestro cómo:
Nuestra base de datos de preguntas y respuestas será un simple array. Además usaremos las sesiones, para verificar la respuesta en el archivo de chequeo.
El array de preguntas y respuestas contendrá una pregunta clara y legible para los humanos, y una respuesta a modo de expresión regular, para considerar las variantes de respuesta. Por ejemplo:
Pregunta: ¿Cuántos dedos tiene una mano?
Respuesta: (5|cinco) // acepta mayúsculas y minúsculas
Una vez declarado esto, seleccionaremos una pregunta al azar, con la función rand(). La parte de pregunta la imprimiremos por pantalla en el lugar adecuado junto a un campo de texto.
Lo siguiente es guardar la expresión regular que contiene la respuesta en una variable de sesión, para que quede accesible en el chequeo a continuación.
Por último, en el archivo de chequeo usaremos la función de que evalua expresiones regulares eregi(), sometiendo la respuesta del campo de texto a la expresión regular almacenada en sesión.
El concepto ya está definido, y es tan simple como eso. Ahora plasmémoslo en esas bonitas letras de colores que son el código:
En el archivo del formulario:
-
// puedes escribir todas las que quieras
-
-
$_SESSION[‘pregregex’] = $preguntas[$pregn][1]; // Lo guardo en sesion
Y en el archivo de chequeo:
Inconvenientes:
- El idioma importa (a no ser que sean preguntas aritmeticas)
- Puedes toparte con una mente brillante, que le de por contestarte lo que no es
- …ninguno más, que yo sepa… pregúntale a un robot.
Podéis probar su funcionamiento en directo desde este ejemplo.
Categorias: Aplicaciones, Código, HOWTO/CóMO, PHP, Seguridad, Software libre |



Octubre
5:29 Alejandro Torres Ha dicho:
Muy bueno, me parece una gran medida para evitar el SPAM y sin molestos captchas
Octubre
13:57 Alex Barros Ha dicho:
Pues sí, yo opino que son los nuevos captchas. Los visuales muchas veces son tan indescifrables…
Abril
1:44 VULCAN Ha dicho:
ME PARECE UN MUY BUEN CODIGO VOY A REALIZARLE UNAS PEQUEÑAS MODIFICACIONES HABER COMO ME VA… GRACIAS
ADIOS….
Abril
19:28 José Cabo Ha dicho:
Hola Vulgan, gracias por comentar en el post de Alex.
A ambos nos gustaría que los usuarios escribieran siempre en minúsculas puesto que en internet, al leer, palabras escritas en mayúscula es sinónimo de hablar gritando.
¡Gracias y hasta la próxima!
Mayo
8:21 Innovacionweb.com Ha dicho:
Muy bueno vuestro artículo, he desarrollado algo similar.
http://www.innovacionweb.com/anti-spam-accesible-preguntas-php.php
Un saludo.