Foros del Web » Programando para Internet » PHP »

Función de seguridad. Mejoras?

Estas en el tema de Función de seguridad. Mejoras? en el foro de PHP en Foros del Web. ¡Hola a todos! Hace tiempo vengo usando esta función que automáticamente limpia $_GET,$_POST,$_COOKIE y $_SESSION La dejo para que la use el que quiera, y ...
  #1 (permalink)  
Antiguo 22/09/2013, 09:55
 
Fecha de Ingreso: mayo-2010
Mensajes: 35
Antigüedad: 13 años, 11 meses
Puntos: 1
Función de seguridad. Mejoras?

¡Hola a todos!

Hace tiempo vengo usando esta función que automáticamente limpia $_GET,$_POST,$_COOKIE y $_SESSION

La dejo para que la use el que quiera, y además les pido que el que pueda ayudar de una mano para mejorarla de a poco =)

No creo que algo deje de ser seguro por compartirlo, así que...

Código PHP:
    if(count(@$_GET)>0)
    {
        foreach(
$_GET as $key=>$value)
        {
            if(
is_array($value))
            {
                
$value '';
            }
            
            
$value strip_tags($value);
            
$value htmlspecialchars($value);
            
$value htmlentities($value,ENT_QUOTES,"UTF-8");
            
$value trim($value);
            
$value str_replace("<","&lt;"$value);
            
$value str_replace(">","&gt;"$value);
            
            if (
get_magic_quotes_gpc())
            {
                
$value stripslashes($value);
            }   
            
            
$_GET[$key]=$value;
        }
    }

    if(
count(@$_POST)>0)
    {
        foreach(
$_POST as $key=>$value)
        {
            if(
is_array($value))
            {
                
$value '';
            }
            
$value strip_tags($value);
            
$value htmlspecialchars($value);
            
$value htmlentities($value,ENT_QUOTES,"UTF-8");
            
$value trim($value);
            
$value str_replace("<","&lt;"$value);
            
$value str_replace(">","&gt;"$value);
            
            if (
get_magic_quotes_gpc())
            {
                
$value stripslashes($value);
            }   
            
            
$_POST[$key]=$value;
        }
    }
     
    if(
count(@$_COOKIE)>0)
    {
        foreach(
$_COOKIE as $key=>$value)
        {
            if(
is_array($value))
            {
                
$value '';
            }        
            
$value strip_tags($value);
            
$value htmlspecialchars($value);
            
$value htmlentities($value,ENT_QUOTES,"UTF-8");
            
$value trim($value);
            
$value str_replace("<","&lt;"$value);
            
$value str_replace(">","&gt;"$value);
            
            if (
get_magic_quotes_gpc())
            {
                
$value stripslashes($value);
            }   
            
            
$_COOKIE[$key]=$value;
        }
    }

    if(
count(@$_SESSION)>0)
    {
        foreach(
$_SESSION as $key=>$value)
        {
            if(
is_array($value))
            {
                
$value '';
            }        
            
$value strip_tags($value);
            
$value htmlspecialchars($value);
            
$value htmlentities($value,ENT_QUOTES,"UTF-8");
            
$value trim($value);
            
$value str_replace("<","&lt;"$value);
            
$value str_replace(">","&gt;"$value);
            
            if (
get_magic_quotes_gpc())
            {
                
$value stripslashes($value);
            }   
            
            
$_SESSION[$key]=$value;
        }
    } 
Problemas actuales de utilizar esta función.
  • Los caracteres extraños como á é í etc se transforman en &amp...
  • Si usan un editor wysiwyg va a dejar de funciona, ya que el HTML no va a pasar.

Eso es lo que yo encontré hasta ahora... ¿Alguna sugerencia?

Gracias a toda la comunidad =)
  #2 (permalink)  
Antiguo 22/09/2013, 11:01
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Función de seguridad. Mejoras?

Yo no la usaría, hace cosas que no quiero que haga con mis variables, es una solución bastante vieja pues hoy en día hay mejores formas de controlar esto.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 22/09/2013, 13:20
 
Fecha de Ingreso: mayo-2010
Mensajes: 35
Antigüedad: 13 años, 11 meses
Puntos: 1
Respuesta: Función de seguridad. Mejoras?

¡Hola pateketrueke!

La idea de esto es no tener que limpiar variable por variable, sino hacerlo automáticamente...

¿Alguna idea más actual?

Gracias =)
  #4 (permalink)  
Antiguo 22/09/2013, 13:44
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Función de seguridad. Mejoras?

Cita:
La idea de esto es no tener que limpiar variable por variable, sino hacerlo automáticamente...
Si el problema no es ese, lo entiendo, el problema es todo lo demás, redundancia, replace-hell sin razón, ocultas errores con la arroba, funciones obsoletas, no sé, lleno de malas practicas.

No te ofendas pero tu código es no-bueno.

Cita:
¿Alguna idea más actual?
Aquí está todo lo que se debe aprender: http://phptherightway.com/

Si deseas compartir a la comunidad hazlo con buenas practicas, se te agradecerá.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: injection, xss
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 01:13.