elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Simple AntiBot en PHP
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Simple AntiBot en PHP  (Leído 3,192 veces)
Karman


Desconectado Desconectado

Mensajes: 673



Ver Perfil WWW
Simple AntiBot en PHP
« en: 19 Febrero 2011, 05:16 am »

bueno, dado que estaba sufriendo varios ataques en mi web (no se ni me interesa de quien) tube que implementar un antibot parecido al que se usaba en este sitio (inspirado en lo que puso el-brujo en un post aunque mucho más simple)

Código
  1. <?php /* antibot.php */
  2.  
  3. function checkBot(){
  4. //cookie params
  5. @ini_set('session.use_cookies',1);
  6. @ini_set('session.cookie_lifetime',31536000);//un año
  7. @ini_set('session.use_only_cookies',1);
  8. @ini_set('session.cookie_path','/');
  9. // configufación de variables PHP
  10. @ini_set('session.name',"AntiBot");//nombre de la cookie
  11. //otras opciones  
  12. @ini_set('session.hash_function',0);
  13. @ini_set('session.use_trans_sid',0);
  14. @ini_set('session.save_path','/tmp');
  15.  
  16. if(!isset($_SESSION['bottime']))
  17. $_SESSION['bottime']=rand(100,999);
  18. $bottime=$_SESSION['bottime'];
  19.  
  20. if(isset($_REQUEST['antibotkey']))
  21. $_SESSION['antibotkey']=$_REQUEST['antibotkey'];
  22. if(isset($_SESSION['antibotkey'])&&isset($_SESSION['bottime'])){
  23. $antibotkey=$_SESSION['antibotkey'];
  24. if(!empty($antibotkey)&&sha1($_SERVER['HTTP_USER_AGENT'].$bottime)==$antibotkey)
  25.  return null;
  26. }
  27.  
  28. if(!isset($_SESSION['botcount']))
  29. $_SESSION['botcount']=0;
  30. else
  31. $_SESSION['botcount']++;
  32.  
  33. if($_SESSION['botcount']>10){
  34. $_SESSION['botcount']=0;
  35. @header("Location: http://www.google.com");
  36. }
  37.  
  38. return sha1($_SERVER['HTTP_USER_AGENT'].$bottime);
  39. }
  40.  
  41. ?>

Código
  1. <?php /* index.php */
  2. /********************************* Anti Bot ************************************/
  3.  
  4. include 'antibot.php';
  5. $antibotkey=checkBot();
  6. if(!empty($antibotkey))
  7. die("<a href='index.php?antibotkey=$antibotkey'>Haz Click Aquí para Entrar al Sitio</a><br/><br/>Este Mensaje es mostrado para evitar el ingreso de Bots y solo lo verás una vez.<br/><br/>Disculpe las molestias.");
  8.  
  9. /********************************* Anti Bot ************************************/

se puede optimizar, se le pueden agregar más checkeos, etc... pero es para tener una base dado que la que se utilizó acá en el foro no es público el código... je  :xD, pero como supongo es algo temporal no me calenté mucho en mejorarlo :)

S2

PD: El protocolo no es ese, pero es perecido, je


« Última modificación: 19 Febrero 2011, 05:19 am por Karman » En línea

~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 1.125



Ver Perfil
Re: Simple AntiBot en PHP
« Respuesta #1 en: 19 Febrero 2011, 14:18 pm »

Es bypaseable xD, aunque creo que cualquier antibot se puede bypasear nomas sabiendo su algoritmo. Lo único que te puedo recomendar es que no muestre tus archivo antibot, aunque no muestres el source, mirando bien el funcionamiento de la web puedes saber como funciona tu antibotne.


En línea

Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.
Karman


Desconectado Desconectado

Mensajes: 673



Ver Perfil WWW
Re: Simple AntiBot en PHP
« Respuesta #2 en: 19 Febrero 2011, 17:05 pm »

Es bypaseable xD, aunque creo que cualquier antibot se puede bypasear nomas sabiendo su algoritmo. Lo único que te puedo recomendar es que no muestre tus archivo antibot, aunque no muestres el source, mirando bien el funcionamiento de la web puedes saber como funciona tu antibotne.

el protocolo es solo de ida, les va a llevar su buen rato descifrarlo...  ;), además, eso es configurable, se lo puede complicar tanto como se quiera...  :P

S2
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
sql simple
Ejercicios
CrÄsH 6 5,825 Último mensaje 15 Diciembre 2008, 18:34 pm
por CrÄsH
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines