Calificación:
  • 1 voto(s) - 5 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Clase Anti-Bots en PHP
#1
La clase anti-bots crea un archivo por cada formulario y envía el nombre del archivo vía un input oculto para que luego verifique si el archivo esta creado. Si esta creado automáticamente te deja seguir y lo elimina, y si no esta creado no te deja seguir.

Tenemos que crear una carpeta llamada “auth” para que guarden los archivos generador ahí.

antibot.class.php

Código PHP:
<?php
// @file = antibot.class.php
// @creditos = SERbice & Marcofbb
class AntiSpam 
{
    function 
__construct()
    {
        
///Aca tenemos una lista con caracteres para que se forme una cadena de caracteres al azar.
        
$letras=array('a','8','1','c','d','e','b','f','g','i','h','j','k','l','m','n','p','5','4','3','2','6','7','9','0','c','d','e','b','f','g','i','h','5','r','q','t','5','4','3','j','k','l','m','n','p','o','r','q','t','5','4','y','z','x','3','2','6','7','9','0','s','u','v','w','a','8','1','c','d','e','b','f','g','i','h','j','k','l','m','n','p','5','4','3','2','6','7','9','0','c','d','e','b','f','g','i','h','5','r','q','t','5','4','3','j','k','l','m','n','p','o','r','q','t','5','4','y','z','x','3','2','6','7','9','0','s','u','v','w');    
    
/// la variable $strletras va a tener una lista de caracteres al azar    
    
$strletras=$letras[rand(0,count($letras))].$letras[rand(0,count($letras))].$letras[rand(0,count($letras))].$letras[rand(0,count($letras))].$letras[rand(0,count($letras))].$letras[rand(0,count($letras))].$letras[rand(0,count($letras))].$letras[rand(0,count($letras))].$letras[rand(0,count($letras))].$letras[rand(0,count($letras))];
 
    
/// $hash va a tener el hash tipo sha1 de la cadena contenida en $strletras
    
$hash=sha1($strletras);
    
$this->hash $hash;
    }
 
    
// El codigo hash ya generado
    
function generar()
    {
        
/* creamos un archivo en la carpeta auth.
        el nombre del archivo sera $hash.
        el contenido del archivo sera un timestamp del momento en el que se creo
        si el archivo ya existe lo sobreescribira automaticamente */
        
file_put_contents('auth/'.$this->hash,mktime());
        return 
$this->hash;
    }
 
    function 
validar($n)
    {
        if (
is_file('auth/'.$n))
        {
            
unlink('auth/'.$n);
            return 
true;
        } else { return 
false; }
    }
}
?>

ejemplo.php

Código PHP:
<?php
include('antibot.class.php');
$antispam = new AntiSpam();
if(
$_POST['button'])
{
    if(
$antispam->validar($_POST['auth']))
    {
        echo 
"VALIDO";
    }
    else
    {
        echo 
"NO VALIDO";
    }
    exit();
}
?>
<form id="form1" name="form1" method="post" action="">
    <input type="text" name="Nombre" value="Tu nombre" />
    <input type="hidden" name="auth" value="<?=$antispam->generar()?>" />
    <input type="submit" name="button" id="button" value="Enviar" />
</form> 
#2
en las votaciones siempre ponen bots :S
Mi Web http://www.DjNet.com.ar
-Foro
-Chat
-Blog
De todo podras ver en http://www.djnet.com.ar
#3
lo probare en mi web aver si va


Posibles temas similares...
Tema Autor Respuestas Vistas Último mensaje
  reCAPTCHA: fácil para humanos, ¿difícil para bots? Kevin9908 3 260 30-06-2015, 08:13 PM
Último mensaje: garcon
  Spam bots en blogs y como detenerlos alberto_es 6 603 12-10-2014, 09:52 AM
Último mensaje: betiko2424
  Directiva .httacess Anti DDOS Andryus 10 1,164 03-09-2013, 01:53 AM
Último mensaje: KeviNxDTM
  Vectores, Array o Arreglos en PHP (CLASE 6) HILARION 4 593 24-12-2012, 10:13 PM
Último mensaje: esteban
  Mostrar información del navegador [Clase PHP] AbaddonOrmuz 2 942 22-09-2012, 05:32 PM
Último mensaje: Marcus_Fenix
  Anti DDoS diringax 7 1,072 02-06-2012, 08:49 PM
Último mensaje: Alianza
Gran sonrisa Anti Hack fullmaster 4 666 05-02-2012, 03:14 AM
Último mensaje: Juliens
  Envío de datos de un formulario con PHP (CLASE 5) HILARION 3 753 03-01-2012, 02:33 AM
Último mensaje: djblack120
  MySQL – Editar Registros (CLASE 13) HILARION 1 473 20-12-2011, 04:20 PM
Último mensaje: djblack120
  MySQL – Consultar datos en MySQL (CLASE 12) HILARION 0 458 04-12-2011, 10:01 PM
Último mensaje: HILARION



Usuarios navegando en este tema: 1 invitado(s)