Una captcha es un sistema de reconocimiento para saber si el usuario que está accediendo a una aplicación es un humano o es una máquina que procesa datos automáticamente.
Se utilizan en formularios que hay en páginas web y lo más típico es que sea por medio de una imagen que puede tener letras o números, que generalmente están deformados para que no se lean fácilmente. El que rellena el formularo tiene que escribir el texto que hay en la imagen en el formulario para que se cargue correctamente. Las imágenes deformadas son dificiles de leer por máquinas, pero el usuario humano es capaz de entenderlas fácilmente.
También pueden haber captchas de otro tipo, por ejemplo que hagan preguntas al usuario y que este tenga que escribir una respuesta.
Aumentan la seguridad de las aplicaciones porque permiten saber si un usuario es humano. Una máquina por ejemplo puede intentar entrar por fuerza bruta en un sitio generando claves y nombres de usuario. En un rato puede hacer miles o millones de pruebas, mientras que una persona tardaría meses o años en hacer lo mismo.
Pero sobretodo se utilizan para combatir el spam. Existen robots que se encargan de rellenar formularios automáticamente y enviar spam a los destinatarios o publicar direcciones de sitios que desean promocionar en sitios como foros. Con las captchas se puede evitar la mayoría de estos robots.
No obstante, existen sistemas automáticos para decodificar captchas, por lo que no son completamente seguras.
En Desarrolloweb.com tienen un artículo que nos enseña a poner una captcha en nuestra página web.