Ver Mensaje Individual
  #8 (permalink)  
Antiguo 06/11/2005, 22:15
Znet
 
Fecha de Ingreso: marzo-2002
Ubicación: Salta Capital - Actualmente estudiando en Córdoba
Mensajes: 430
Antigüedad: 24 años, 6 meses
Puntos: 0
Funcion Terminada

Bueno amigos despues de muchas pruebas y como bien dice mi firma, ya lo consegui, si me autorizan me gustaria poner el código en las FAQ's para aquellos que quieran tener a su disposicion el mismo, usenlo como quieran y modifiquenlo como quieran a su gusto, guiense por los comentarios es sencillo, pero por lo menos a mi me dio efectividad.
aqui va:

Código PHP:
 <?php
function clean_bad_chars($char)
{
$ban=0;//Bandera para saber si estan ejecutando una Inyeccion SQL
$char_w_replaced = stripslashes($char);//Guardamos la Inyeccion original para informacion a la BD
//Array con las palabras reservadas, para modificar a gusto :D
$hack_array = array("'", '"', ";", "UNION", "union", "DROP", "drop", "table", "TABLE", "SET", "set", "UPDATE", "update", "SELECT", "select", "-", "--", "MEMB_INFO", "memb_info", "memb__pwd", "memb___id"); //Caracter por el que será reemplazada cada palabra reservada del sitio
$hack_replace = ""; //Separamos la cadena en un Array para poder hacer la comparacion y determinar si estan
//ejecutando o no una Inyeccion SQL
$char1=explode(" ",$char);
for(
$i=0;$i<count($char1);$i++)
{
 if(
in_array($char1[$i],$hack_array))//si se quiere se puede convertir todo a mayusculas para la comprobacion.
 
{
  
$ban=1;
 } 
}
 if (
$ban==1)
 {
  
$add="ESTAS HACKEANDO SI SI"; 
  
//guardar informacion en base de datos sobre el intento de hacking como IP, etc...
 
}
 else 
 {
  
$add="NO ESTAS HACKEANDO"; 
  
//seguir con los procesos del POST o GET sin guardar ips ni nada
 
}  
//reemplazamos las palabras reservadas
$char_replaced = str_replace($hack_array, $hack_replace, $char);
//evitamos codigos html y espacios en blanco
$char_clean=htmlentities(trim($char_replaced)); //retornamos la cadena limpia para usar en nuestra consulta, o podemos devolver segun el resultado de ban
//un die para no ejecutar nada o como se les ocurra
 
return $char_clean.$add;
}
?>
Bueno espero que les sirva, lo hice para variable, osea para aplicarlo, se debera llamar a la funcion en cada variable GET o POST
Ahora ando ocupadillo con un sitio, pero despues lo hare para que pasen todas las variables que necesiten, ya sean GET o POST.

Saludillos.-
__________________
Nada es imposible, con un poco de esfuerzo se logran las cosas.-