viernes, 20 de septiembre de 2013

Reemplazar caracteres no deseados con str_replace


str_replace() es una función php que permite reemplazar caracteres no deseados de un string, esta función puede ser muy útil para prevenir ataques XSS o la inyección SQL, una forma clara de ver su eficacia es mediante campos de búsqueda, ya que muchas veces es utilizado como foco para posibles ataque XSS, con str_replace() es posible evitar la ejecución de javascript, o la inclusión de la comilla simple para provocar errores en las consultas sql.

A continuación se puede ver un ejemplo de como reemplazar mediante arrays caracteres no deseados ...

/*este string contiene código javascript que pretende ser inyectado*/
$string = "<script>alert('hola')</script>";

/*En este array se introducen los caracteres no deseados*/
$no_permitido = array("<", ">", "'");
/*En este array se introducen los caracteres html que reemplazarán a los no deseados*/
$reemplazar_por = array("&lt;", "&gt;", "&#39;");

$string = str_replace($no_permitido, $reemplazar_por, $string);
echo $string;
#Regresa el string como texto simple : <script>alert('hola')</script>