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.

Algunas veces, cuando desarrollo un script para incluir en Sentido Web, me encuentro con el problemilla de que sólo funciona para PHP 5, cuando aquà tenemos instalado el 4 para evitar problemas de compatibilidad. Esta situación seguro que os a aparecido a vosotros. Si no estáis seguros de qué versión usar o qué problemas os podéis encontrar, nada mejor que leer el siguiente artÃculo.
Muchas veces queremos que las personas se descarguen las imágenes que tenemos en nuestras páginas web, pero también queremos que quede bien claro quién es el autor. Para ello podemos editar todas las imágenes que tengamos, o bien que el propio entorno se encargue de poner el copyright por nosotros.