Buenas. Recién empiezo con el tema del PHP y seguridad web. Y quise hacer un buen sistema Antispam (o que funcione medianamente bien) de esos que te pida que ingreses una serie de caracteres para continuar navegando.
La idea es que yo hice el siguiente codigo. Quería preguntarles que les parece, si esta bien, si realmente vale la pena, si es facil de "esquivar" y si tiene mejora pendiente. Bienvenida sea ;)
Código PHP:
<div style="width:300px; height:230px; background:#999; padding:5px; border: 2px solid #333; text-align: center; margin:auto;">
<?php
//
// Aca agarro el ingreso y el numero que salio random
// y pregunto si coinciden..
function letra()
{
$cadena = '';
for ($i = 0; $i<8; $i++)
{
if(mt_rand(0,1) == 1)
{
$cadena=$cadena . chr(mt_rand(65,90));
}
else
{
$cadena=$cadena . mt_rand(0,9);
}
}
return $cadena;
}
$numero = $HTTP_POST_VARS['numero'];
$ingreso = $HTTP_POST_VARS['ingreso'];
if ($HTTP_GET_VARS["envio"] == "si"){
if($ingreso==$numero){
echo '
<p><u><b>Pasaste!</b></u></p>
<br /><br />
<p><a href="php.php">volver</a></p>
'; //aca coincidio//
}
else{
echo '
<p><u><b>Bardiaste!</b></u></p>
<br /><br />
<p><a href="php.php">volver</a></p>
'; //aca no coincidio//
}
}
else{
// El script "empieza" aca!
// genero un numero random...
$random = letra();
echo '
<p><b>Por favor ingrese el siguiente número:</b></p>
<br />
<p><b><u>'.$random.'</u></b></p>
<br />
<form action="php.php?envio=si" method="post">
<input name="numero" type="hidden" value="'.$random.'" />
<input name="ingreso" style="text-transform:uppercase"; type="text" size="25" />
<br /><br />
<input type="submit" value="Enviar" />
</form>
';
}
//
// Aca Envia el Formulario como php.php?envio=si ...
?>
</div>
Desde ya, gracias.