Anti inyección mysql rápido y fácil
Programación Marzo 25th, 2009Aquí dejo una manera rápida y sencilla de aplicar la función mysql_real_escape_string para evitar inyecciones mysql en php:
Creamos el archivo mysqlrealescapearray.php y en él introducimos el siguiente código:
<?php
function mysql_real_escape_array($t){
return array_map(“mysql_real_escape_string”,$t);
}
$_POST = mysql_real_escape_array($_POST);
$_GET = mysql_real_escape_array($_GET);
?>
Tan sólo nos faltaría hacer referencia a mysqlrealescapearray.php desde el archivo que queramos proteger ante inyecciones mysql, después de hacer el mysql_select_db($mibasededatos);
require_once(“funciones/mysqlrealescapearray.php”);
Con esto conseguimos que se filtre por completo tanto $_POST como $_GET, evitando tener que hacer un mysql_real_escape_string en cada consulta a la base de datos.
Septiembre 20th, 2009 at 5:17 pm
La idea es muy buena y sobre todo muy simple, pero si dispones de varias consultas en el mismo script, se podría indicar en algún sitio concreto ¿?. Gracias y un saludo.
Septiembre 20th, 2009 at 5:19 pm
Vaya, que lío, discúlpame, en vez de leer mysql_select_db leí mysql_query …. Ahora ya me lo aplicó a mis sistema, muchas gracias.
Octubre 18th, 2009 at 11:21 am
Buenas. Me he dado cuenta que cuando utilizas en formularios campos tipo FILE, da error. Pero logré gracias a otra persona enmendar este error con el siguiente código:
function mysql_real_escape_array2($t){
if(is_array($t))
return array_map(“mysql_real_escape_string”,$t);
else
return mysql_real_escape_string($t);
}
function mysql_real_escape_array($t){
return array_map(“mysql_real_escape_array2″,$t);
}