Ver Mensaje Individual
  #12 (permalink)  
Antiguo 27/01/2012, 14:54
thealfred
 
Fecha de Ingreso: julio-2006
Mensajes: 9
Antigüedad: 17 años, 9 meses
Puntos: 0
Respuesta: Este codigo evita sql injection?

Bueno, yo veo problemas al no limpiar las variables en la consulta porque realmente no sabes los valores que le van a asignar a tus variables, yo siempre limpio mis variables utilizando sprintf el cual me devuelve una cadena formateada de acuerdo al tipo de dato que le estoy especificando por ejemplo si pongo %d estoy pidiendo que me devuelva un entero, si pongo %s estoy pidiendo que me devuelva una cadena, y adicionalmente uso la función mysql_real_escape_string() la cual coloca barras invertidas a los caracteres especiales para que no los tome en cuenta como parte de la consulta por ejemplo el apostrofe '.

Ejemplo:

Código PHP:
Ver original
  1. $strSql=sprintf("DELETE FROM clientes WHERE idcli='%s';",
  2.                 mysql_real_escape_string($id));