Ver Mensaje Individual
  #3 (permalink)  
Antiguo 20/04/2009, 21:47
Avatar de polin2bclan
polin2bclan
 
Fecha de Ingreso: julio-2008
Mensajes: 73
Antigüedad: 15 años, 10 meses
Puntos: 5
Respuesta: Seguridad en datos de entrada web

Amigo.

El captcha por lo general funciona así:
Creas una sesión aleatoria, los caracteres de la sesión se muestran en una imagen, por lo tango, la imagen en realidad no tiene caracteres, simplemente se montan encima de ella mientras muestras el captcha en tu campo.

Como la sesión es aleatoria si alguien hace un robot de spam usando un codigo, le sera inutil porque es ramdom y se genera una diferente cada ves que cargas la página.

captcha.php
Código PHP:
<?php
session_start
();
function 
randomText($length) {
    
$pattern "1234567890abcdefghijklmnopqrstuvwxyz";
    for(
$i=0;$i<$length;$i++) {
      
$key .= $pattern{rand(0,35)};
    }
    return 
$key;
}

$_SESSION['tmptxt'] = randomText(8);
$captcha imagecreatefromgif("bgcaptcha.gif");
$colText imagecolorallocate($captcha691111);
imagestring($captcha5167$_SESSION['tmptxt'], $colText);

header("Content-type: image/gif");
imagegif($captcha);
?>
Pones una imagen en el mismo directorio de este archivo llamada bgcaptcha.gif
Para implementarla seria asi:
Código PHP:
<strong>C&oacute;digo Anti-Spam:</strong><br />
<
div id="load_captcha"><img src='wp-content/plugins/polin/captcha/captcha.php' title='1' width='100' height='30' /></div>
<
input name="codecptcha" type="text" class="frm_field" id="codecptcha" value="" maxlength="50" /> 
Y tu procesador de datos debera comprobar asi:
procesador.php
Código PHP:
<?
session_start
();
if(isset(
$_POST['codecptcha'])) { $codecptcha=$_POST['codecptcha']; }
if(
$codecptcha==$_SESSION['tmptxt'])
    {
echo 
"El capctha es correcto";
}
else
{
echo 
"El codigo que ingreso es incorrecto";
}