hola sodyack! como va ?
Cuando hablas de seguridad a la hora de proteger las consultas (para evitar posibles injects), lo que plantea nax_hh es muy usado y seguro.
mysql_real_escape_string lo que hace (casi repitiendo lo que dice php.net) es "escapar las comillas que se encuentren en el parámetro que le pasas a la función".
Por eso (y solo a modo de estar seguros) es recomendable el uso de mysql_real_escape_string a la variable que te llega en un request (ya sea POST o GET).
puedes estar seguro que al usar mysql_real_escape_string de esta forma ya no tendrás problemas en cuanto a los posibles injects.
Ahora bien, lo que preguntas en tu último mensaje, ya no es solo un tema de seguridad estrictamente hablando, sino que es un tema de semántica a la hora de guardar un determinado valor en la base.
básicamente lo que haces en esta línea:
Código PHP :
$id = addslashes(strip_tags(htmlspecialchars(htmlentities($_GET['id']))));
1) con htmlentities dejas el valor de $_GET['id'] pero con sus caracteres convertidos a entidades html ( las "&" las pasa a "&aamp;", las "ñ" las pasa a "ñ", etc).
2) luego htmlspecialchars actúa de igual forma que htmlentities (solo que convierte algunos caracteres).
3) enseguida, con strip_tags estas intentando quitar todos los tags. Pero cuidado, al utilizar anteriormente htmlentities reemplazaste todos los "<" y ">" por sus caracteres html ( "<" y ">" ). así que no quitarás ningún tag.
4) al aplicar addslashes estás agregando "\" para escapar los caracteres (aunque puede parecer que esta función hace lo mismo que mysql_real_escape_string, es ampliamente recomendado que se use esta última en lugar de addslashes)
http://www.php.net/manual/es/function.addslashes.php
como ves, analizando, algunos de estos pasos no son necesarios. de hecho, si te pones a pensar. Quizá el mismo campo ID en la base, sea numérico, por lo que con un simple "is_numeric($_GET['id'])" bastaría para verificar si el valor que está en "$_GET['id']" es del tipo que esperas.
Una última recomendación .. y quizá ya de paso ampliando ( y siendo quizá algo más certero) es bueno que siempre tiendas a centralizar tus querys. Si bien hay consultas puntuales que son para determinado lugar del site, es bueno comiences a usar clases para (entre muchísimas cosas) que puedas manipular los elementos en tu programación y hagas cambios más rápidos a la hora de hacer modificaciones como estas.
saludos!