¿Qué problema de seguridad tiene este código (de haberlo) y como podría evitarlo en tal caso?
mysql_query("SELECT * FROM tabla WHERE id = {$_POST['id']}")
Recibe ayuda de expertos
Es gratis y fácil
Respuestas, votos y comentarios
Recibe puntos, vota y da la solución
¿Qué problema de seguridad tiene este código (de haberlo) y como podría evitarlo en tal caso?
mysql_query("SELECT * FROM tabla WHERE id = {$_POST['id']}")
puedes realizar varias cosas.
luego de eso, asignarlo en una variable y dicha variable ponerla en la query:
$nuevoID = $_POST['id'];
int $nuevoID;
if (is_int ($nuevoID)) {
// ejecutar la query
} else
{
echo "número inválido";
}
A parte de lo que ha dicho santiago, deberías buscar en Internet sobre cómo evitar, en general, las inyecciones SQL. Seguro que, a parte de lo que ha dicho el compañero, que es lo básico, se te ocurre (o te encuentras) alguna cosa interesante para hacerle.
Un saludo.
Como te dice santiago, es susceptible a inyección de código SQL, se puede evitar usando la función mysql_real_escape_string para sanitizar los datos provistos por los usuarios.