Jajajaja hijo mio...
Todo es vulnerable, por ejemplo, puedes conseguir la mejor caja de seguridad del mundo, pero te aseguro que con tiempo, paciencia e infraestructura podrían robarte el contenido.
Lo mismo pasa con PHP o cualquier lenguaje. Eso sí, siempre puedes usar truquitos y cosas para estar mas seguro pero no hay nada infalible...
Básicamente en un codigo que el usuario envia datos al servidor, vease foros, chats, libros de visitas, etc..., hay que proteger los datos de la variable superglobal $_POST. Si un usuario intenta hacer algo lo hará mediante codigos enviados por los formularios, es decir, a traves de $_POST.
¿Como proteger esta variable?
Puedes deshabilitar html, evitar las comillas, etc... Lo mejor es mirar los codigos trabajados, vease un foro SMF, PHP-Nuke, phpBB, vBulletin, etc... Pero siempre habrá alguna vulnerabilidad
