PHP – Evitar Sql injection

Para evitar el sql injection en nuestros sitios, debemos tener una función que limpie las posibles entradas de texto de los usuario, quitándole las cadenas peligrosas. Hay otros métodos un poco más complejos,aplicables dentro de las consultas, y en la generación de la consulta. La siguiente es una función sencilla que elimina los caracteres peligrosos de una cadena;

 

function prepararParaSql($cadena)

{
	$cadena = strip_tags($cadena);	
	$cadena = str_replace ("*", "", $cadena);
	$cadena = str_replace ("%", "", $cadena);
	$cadena = str_replace ("'", "", $cadena);
	$cadena = str_replace ("#", "", $cadena);
	$cadena = str_replace ("\\", "", $cadena);
	$cadena = str_replace("mysql","",$cadena);
	$cadena = str_replace("mssql","",$cadena);
	$cadena = str_replace("query","",$cadena);
	$cadena = str_replace("insert","",$cadena);
	$cadena = str_replace("into","",$cadena);
	$cadena = str_replace("update","",$cadena);
	$cadena = str_replace("delete","",$cadena);
	$cadena = str_replace("select","",$cadena);
	$cadena = str_replace("Character","",$cadena);
	$cadena = str_replace("MEMB_INFO","",$cadena);
 	$cadena = str_replace("IN","",$cadena);
 	$cadena = str_replace("OR","",$cadena);
 	$cadena = str_replace (";", "", $cadena);
	//$cadena = str_replace (",", "", $cadena);

	return $cadena;
}

No debemos confiarnos, es sólamente una herramienta más para evitar sql injection entre tantas otras, pero prevenir siempre es mejor.