XSS mediante HTML no estándar
Cuando se quieren evitar ataques XSS, normalmente en PHP se usan las funciones htmlspecialchars o htmlentities.
Ahora veo un ejemplo en el que un ataque puede evitar estas funciones cuando se crea la página con HTML no estándar. Tenemos el tÃpico ejemplo de un texto que se introduce por un formulario y se presenta como un enlace.
$dato = htmlentities($_GET['dato'], ENT_QUOTES);
echo "<a href=pagina.php?dato=$dato>Enlace</a>";
Si os fijáis bien veréis que el enlace está mal formado y no tiene las comillas en el href. Si metieramos como dato de entrada lo siguiente: ” onclick=alert(null)” (sin las comillas), nuestra página sufrirÃa un ataque XSS y mostrarÃa un mensaje alert.

POG (PHP Object Generator) es una aplicación open source que genera código limpio y válido para PHP4 y PHP5 para generar objetos. Otra caracterÃstica del código que genera es que es sencillo de seguir.