Un buen script realiza validaciones específicas en lugar de usar @ para ocultar mensajes de error; además, no puedes hablar de seguridad si esta depende de variables que provienen de $_GET, para eso están las sesiones.
Aunque este aporte ya es muy viejo, no está del todo obsoleto y puede servirte de guía para mejorar la seguridad en tus proyectos:
http://www.forosdelweb.com/f18/aport...8/#post4265381
En "calidad de mientras" cierro este tema.