Comunidad PHPeros

Lenguajes => Aplicaciones Pre-Fabricadas => Mensaje iniciado por: kike en 18 de Diciembre de 2007, 17:28:42 pm

Título: AntiSqlFlood MOD by kike [Seguridad]
Publicado por: kike en 18 de Diciembre de 2007, 17:28:42 pm
Buenas, quiero compartir con vosotros mi ultima modificacion para smf 1.1.4, es una proteccion contra ataques al sql.

(http://www.pixelsdream.com/antiflood.jpg)

Primero creamos un documento llamado

Citar
antisqlflood.php

Segundo en el pegamos el siguiente codigo

Código: [Seleccionar]
<?php 
//AntiSqlFlood by kike(cracking-z@hotmail.com)
//www.pixelsdream.com
//Esta obra está bajo una licencia de Creative Commons (http://creativecommons.org/licenses/by-nc-sa/2.5/es/)
session_start(); 
$tiempoespera 30
$session "sqlfloodprotection"
if ( isset($_SESSION["{$session}"]) && ( $_SESSION["{$session}"] >= time() - $tiempoespera ) ) 

          exit(
"<center><img src=&#39;http://www.pixelsdream.com/antiflood.jpg&#39; width=&#39;234&#39; height=&#39;234&#39; alt=&#39;antisqlflood by kike&#39;/><b>Please, wait 30 seconds for made another query or action</b><br><b>Por favor, espera 30 segundos para realizar otra consulta o accion</b></br>Press <b><a href=&#39;index.php&#39;>here</a></b> for return to index<br>Pulsa <b><a href=&#39;index.php&#39;>aqui</a></b> para volver al indice<br><br><br>Sql Flood Protection for smf by Kike(cracking-z@hotmail.com)<br>Developed by www.pixelsdream.com<br>Desarrollado por www.pixelsdream.com
<br>  
<br>  
<br> 
  <a rel=&#39;license&#39; href=&#39;http://creativecommons.org/licenses/by-nc-sa/2.5/es/&#39;>
<img alt=&#39;Creative Commons License&#39; style=&#39;border-width:0&#39; src=&#39;http://creativecommons.org/images/public/somerights20.png&#39; />
</a>
  </center>"
); 
          return 
false

$_SESSION["{$session}"] = time(); 
//AntiSqlFlood by kike(cracking-z@hotmail.com)
//www.pixelsdream.com
//Esta obra está bajo una licencia de Creative Commons (http://creativecommons.org/licenses/by-nc-sa/2.5/es/)
?>


Lo siguiente es proteger todas las acciones de index.php
para ello buscamos la siguiente linea

Código: [Seleccionar]
global $modSettings, $settings, $user_info, $board, $topic, $maintenance, $sourcedir;
y añadimos despues

Código: [Seleccionar]
//antidos protection by kike (cracking-z@hotmail.com)
if (isset($_GET['action']) && $_GET['action'] == 'search2' || $_GET['action'] == 'search'){
include 'antisqlflood.php';
}
if (isset($_GET['action']) && $_GET['action'] == 'login' || $_GET['action'] == 'login2'){
include 'antisqlflood.php';

}

con este simple codigo creado por mi protegeremos nuestro smf de algunos de los ataques sql a los que son vulnerables nuestros smf.

Este codigo tambien lo postee en
Simple Machines Forum (http://www.simplemachines.org/community/index.php?topic=211800.0)

Si desean usarlo les ruego que no borren los creditos, gracias por su atencion y espero que les sea util.
Título: Re: AntiSqlFlood MOD by kike [Seguridad]
Publicado por: naveda en 18 de Diciembre de 2007, 19:50:29 pm
¿Lo has probado?
Título: Re: AntiSqlFlood MOD by kike [Seguridad]
Publicado por: kike en 18 de Diciembre de 2007, 21:15:00 pm
si lo he provado, solo que algunos sqlflooders no soportan cookies y la session tiene cookies
pd-puedes tambien probarlo tu mismo sin ningun riesgo
Título: Re: AntiSqlFlood MOD by kike [Seguridad]
Publicado por: CarlosRdrz en 19 de Diciembre de 2007, 16:46:23 pm
Esta bien el codigo, lo unico que no entiendo es porque haces esto:

$session = "sqlfloodprotection";
// Algo de codigo por aqui y despues...
$_SESSION["{$session}"] = time();


La unica explicacion que le veo es para no tener que andar modificando todas las sesiones si se modifica el nombre de esta, ¿Es ese el motivo?
Título: Re: AntiSqlFlood MOD by kike [Seguridad]
Publicado por: kike en 19 de Diciembre de 2007, 17:00:13 pm
para evitar poner el nombre de la sesion cada vez, visteis como me pusieron a caldo en smf? jajaja bueno almenos algunos usuarios si saben apreciar el trabajo de otros jaja