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 =)