Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: Karman en 19 Febrero 2011, 05:16 am



Título: Simple AntiBot en PHP
Publicado por: Karman 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


Título: Re: Simple AntiBot en PHP
Publicado por: ~ Yoya ~ 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.


Título: Re: Simple AntiBot en PHP
Publicado por: Karman 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