Tengo una aplicación que toma datos a través de una solicitud POST. Estoy usando esta información para insertar una nueva fila en la base de datos. Sé que usar mysql_real_escape_string()
(más eliminar% y _) es el camino a seguir para las cadenas, pero ¿qué pasa con los valores enteros? En este momento, estoy usando la función PHP intval()
en ellos.Sanitizing Integer Database Input
Sin embargo, quería asegurarme de que intval()
es perfectamente seguro. No veo la forma en que un atacante realice un ataque de inyección SQL cuando las variables se ejecutan primero a través de intval()
(ya que siempre devuelve un número entero), pero quería asegurarme de que este es el caso de personas que tienen más experiencia que yo
Gracias.
Cabezas: Si se trata de números mayores a 32 o 64 bits (según su plataforma) 'intval()' devolverá cero. Esto es obviamente indeseable si está tratando de almacenar números muy grandes en su base de datos. Por ejemplo, los ids de Facebook no se han incluido en 32 bits durante años http://developers.facebook.com/blog/post/45 –
@Frank Farmer: Hm ... eso es interesante. Gracias por el aviso. Voy a ver qué podemos hacer para resolver ese problema, si es necesario. –