Filtrado de Texto

Eugenio Dapena Camprubi eugenio en dapena.cl
Jue Ene 8 18:18:30 CLST 2004


Hola...

No seria mas recmondable ocupar algo asi como:

function slash($string)
{
   if (!get_magic_quotes_gpc())
       $string = addslashes($string);
   return $string;
}


Saludos

Eugenio

----- Original Message ----- 
From: "Pablo Baeza" <gulusm en terra.cl>
To: "Lista de desarrolladores en PHP" <php en listas.inf.utfsm.cl>
Sent: Monday, December 29, 2003 5:33 PM
Subject: Filtrado de Texto


> Buenas,
>
> Quisiera comentar sobre el tema del filtrado de una cadena de texto,
> para esto dare el siguiente caso,
>
> Supongamos que tenemos un formulario en nuestra pagina, dentro de este
> un <textarea> que recibira un texto ingresado por el usuario el cual
> sera previsualizado y despues sera enviado a la base de datos (mysql
> especificamente).
>
> Bueno lo que estoy haciendo es :
>
> 1.- Recibo el post con $_GET['texto']
> 2.- valido dicho texto, $textoFinal = validar($_GET['texto'])
> 3.- previsualizo $textoFinal con la opcion de volver a editarlo en un
> <textarea>.
> 4.- Si se edita vuelvo al paso [ 1 ] si no voy al paso [ 5 ]
> 5.- Envio $textoFinal a la base de datos
>
> Bueno, mi pregunta esta en el paso [ 2 ] especificamente en la funcion
> validar($cadena),
>
> En dicha funcion tengo lo siguiente,
>
> function validar($cadena)
> {
>     $cadena = str_replace(chr(39),"&#39;",$cadena);
> // chr(39) es una comilla simple '
>     $cadena = str_replace(chr(34),"&quot;",$cadena);
> // chr(34) es una comilla doble "
>     $cadena = str_replace(chr(92),"&#92;",$cadena);
> // chr(92) es una barra invertida \
>     $cadena = strip_tags($cadena, $tags);
> // strip_tags, quito los tags html y php posibles
>     $cadena = trim($cadena);
> // trim, quito los espacio del principio y final de la cadena
>     return $cadena;
> }
>
> Ahora me gustaria que me dieran algunas recomendaciones, sugerencias o
> posibles fallas que pueda tener.
>
> En realidad esto lo estoy haciendo como un metodo de SEGURIDAD para
> evitar entradas erroneas y maliciosas a la base de datos (sql injection
> creo que se llaman), bastara con esas validaciones o faltara por ejemplo
> la comilla invertida -> ` o algun otro caracter malicioso.
>
> Bueno y lo ultimo que queria comentar es que strip_tags no me gusta como
> trabaja simplemente por que me corta la cadena al encontrar tags
> incompletos o erroneos ademas que me quita todo lo que esta entre los
> signos < y >, por ejemplo <estenoesuntag> siendo que este no es un tag.
> Alguna sugerencia?
>
> Bueno saludos, que se encuentren bien y pasen una bonita noche de año
> nuevo.
>
> Bye.
>
>