Tenes muuucho a tener en cuenta, pero inicialmente, contestándote:
1- protegernos contra Inyección de código SQL,
2- controlar los tipos de archivos que se suben en un upload.
1- Lo mejor es usar las funciones que te da, en este caso, mysql (en si la dll de php que conecta con la db). Hay funciones como
mysql_real_escape_string con eso ya estarías cubierto.
2- Como general y básico usa los headers propios de los archivos NO valides jamás por extensión, si es imagen/flash tenes la dg, sino siempre hay algun script que ayude (ej, para leer un mp3, o un doc).
Y como dice alvin, nunca hay que confiar en el usuario pero con tener los datos de entrada controlados contra sql inyección y xss ya estas dando un gran paso.