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("<","<", $value);
            $value = str_replace(">",">", $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("<","<", $value);
            $value = str_replace(">",">", $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("<","<", $value);
            $value = str_replace(">",">", $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("<","<", $value);
            $value = str_replace(">",">", $value);
            
            if (get_magic_quotes_gpc())
            {
                $value = stripslashes($value);
            }   
            
            $_SESSION[$key]=$value;
        }
    } 
    - Los caracteres extraños como á é í etc se transforman en &...
- 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 =)
 
 

 
 

