Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/09/2013, 09:55
HyQnet
 
Fecha de Ingreso: mayo-2010
Mensajes: 35
Antigüedad: 14 años
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 =)