Foros del Web » Programando para Internet » PHP »

Seguridad PHP

Estas en el tema de Seguridad PHP en el foro de PHP en Foros del Web. Estimados Colegas: en estos tiempos estoy desarollando una aplicación web para un cliente y tengo el siguiente dilema , evitar todo tipo de ataque RFI ...
  #1 (permalink)  
Antiguo 13/03/2009, 21:21
 
Fecha de Ingreso: enero-2009
Mensajes: 408
Antigüedad: 10 años, 10 meses
Puntos: 14
Seguridad PHP

Estimados Colegas: en estos tiempos estoy desarollando una aplicación web para un cliente y tengo el siguiente dilema , evitar todo tipo de ataque RFI , XSS , y por sobre todo SQL INJECTION.
En mi tiempo libre elabore este codigo , que creo me filtra todo posible intento de ataque.

Código PHP:
 public function CleanVar($var)
    {
        if (!isset(
$var)) {
            
$var=htmlentities(htmlspecialchars(trim(addslashes($var))));
            
$bad_words=array("UNION","LEFT","JOIN","=","='","?","==","=","===");
            
$var=str_replace($bad_words,"",$var);
            return 
$var;
        }
    } 
para ustedes este codigo es funcional a lo que yo necesito o tengo alguna posible backdoor por donde me puedan evitar el filtro y perjudicar mi aplicación con algun ataque?.

Desde ya gracias.!
  #2 (permalink)  
Antiguo 13/03/2009, 21:49
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 9.975
Antigüedad: 11 años, 3 meses
Puntos: 2190
Respuesta: Seguridad PHP

Tienes un error en el if donde solo aplicaria las modificaciones a una variable cuando esta no exista, recuerda que el ! es equivalente a NOT.

Practicamente puedes permitir cualquier palabra y signo, aun <? con casi nulo riesgo de SQL INJECTION, siempre y cuando apliques a todas las variables de texto mysql_real_escape_string(), ademas de htmlentities y htmlspecialchars.

Siempre verifica que la longitud de las cadenas este en un limite adecuado para guardarlo en la base de datos.
__________________
- León, Guanajuato
- GV-Foto
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:05.