Comunidad PHPeros

Lenguajes => PHP => Mensaje iniciado por: Rastrillox en 29 de Mayo de 2012, 20:45:30 pm

Título: [Duda] como es mejor filtrar
Publicado por: Rastrillox en 29 de Mayo de 2012, 20:45:30 pm
Tengo una pequeña duda, como es mejor filtrar los datos usando htmlspecialchars y mysql_real_escape_string. al ingregar los datos a la base de datos o al mostrarlos.

Tambien otra duda, he visto personas que dicen que esta funcion es mas eficiente que  htmlspecialchars y mysql_real_escape_string
ya que sustituye las comillas simples, dobles, etc..

function validar($cadenatext){
   $cadenatext = str_replace("\'","",$cadenatext);
   $cadenatext = str_replace('\"',"",$cadenatext);
   $cadenatext = str_replace("'","",$cadenatext);
   $cadenatext = str_replace('"',"",$cadenatext);
   $cadenatext = stripslashes($cadenatext);
   $cadenatext = explode("\\",$cadenatext);
   $cadenatext = implode("",$cadenatext);
   $cadenatext = strip_tags($cadenatext, '<p></p><br /><br/></br></ br>');
   return $cadenatext;
   }

Sera cierto?
Título: Re:[Duda] como es mejor filtrar
Publicado por: Slipknot en 30 de Mayo de 2012, 05:17:17 am
Sin duda alguna, al insertar. ¿Por que? SQL Injection 8)

Para reemplazar hay formas mas optimas pero siguiendo tu ejemplo,

$string = str_replace(array('\"',"'",'"'),"",$string);.

La funcion htmlspecialchars tambien puede reemplazar comillas simples y dobles especificandolo en el parametro flags (ENT_QUOTES). Como recomendacion personal, en lugar de utilizar htmlspecialchars usa htmlentities ;)