Sigueme por RSS! RSS

Securimage Captcha para PHP


Securimage es una clase PHP de phpcaptcha que se utiliza para generar y validar las imágenes CAPTCHA. La clase requiere de una sesión para almacenar el código de la imagen, utilizará alguna existente o la creara si no la encuentra.

Las variables dentro de la clase se utilizan para controlar el estilo y la visualización de la imagen, admite fuentes TTF y efectos para el fortalecimiento de la seguridad de la imagen. Si el soporte TTF no está disponible, las fuentes personalizadas GD se puede utilizar también, pero algunas opciones tales como texto transparente y letras en ángulo no pueden ser utilizados.

Características:
- Puede mostrar la imagen en sólo 3 líneas de código.
- Puede validar los códigos de la imagen en menos de 6 líneas de código.
- la longitud del código personalizable.
- conjuntos de caracteres personalizables, soporte para Unicode.
- soporte de fuentes TTF.
- puede utilizar fuentes personalizadas GD cuando TTF no está disponible.
- se pueden agregar fácilmente imágenes de fondo.
- múltiples colores, distorsionada, opciones de texto y transparencia.
- flash personalizable para transmitir el código CAPTCHA en audio MP3.
- Capacidad para utilizar listas de palabras.

Ejemplo de uso: (el código está comentado así que no es necesario explicar más)
<?php
// incluimos la libreria
require_once 'securimage.php';

// creamos una instancia al objeto
$image = new Securimage();

// si se envio el formulario, validamos
if ($_POST['btComprobar'])
{
  // verificamos el código introducida sea correcto 
  if ($image->check($_POST['txtCode']) == true)
    echo 'el código introducido es <b>Correcto</b>!!';
  else
    echo 'el código introducido [',$_POST['txtCode'],'] es <b>Incorrecto</b>! 
          <a href="javascript:history.go(-1)">ir atrás</a>';
}
else
{
  // mostramos el formulario
  echo '<html><head>
   <meta http-equiv="content-type" content="text/html; charset=utf-8">
   <title>ejemplo de Captcha Securimage</title></head>
   <body>
    <div id="midiv" style="text-align:center">
     <form id="miForm" action="index.php" method="post">
      <img id="captcha" src="/securimage/securimage_show.php" alt="CAPTCHA" border="1" /> 
&lt;br /&gt;&lt;br /&gt;Código de la imágen: 
      <input type="text" name="txtCode" size="10" maxlength="6" />&lt;br /&gt;
      <input type="submit" name="btComprobar" value="Comprobar" />
      <input type="reset" value="reset" />
      <input type="button" value="otra imágen" onclick=\'
      document.getElementById("captcha").src = "/securimage/securimage_show.php?" + 
      Math.random(); return false\' />
     </form>
    </div>
   </body>
  </html>';
}
?>

En /securimage/... hay que estar atento y colocar la ruta correcta.

Enlaces:
Demo
descarga
documentación y consultas


Edito: Phil Taylor de idontplaydarts informa de una vulnerabilidad sobre PHPcaptcha-securimage, que consiste básicamente en una falla al momento de generar el código de audio MP3 o WAV.

Solución temporal (no oficial): eliminar el archivo securimage_play.php del directorio del sistema y deshabilitar el uso de la funcionalidad audio del CAPTCHA.

php-captcha-securimage-202-authentication-bypass-so-11-007

Se actualizará el post si la Web oficial se pronuncia al respecto.

0 comentarios: Suscribete a los comentarios por RSS

Publicar un comentario

- Los comentarios están siendo moderados y serán publicados en la brevedad posible.