Considere el siguiente script PHP (podría ser cualquier otro idioma; elegí PHP por simplicidad):
<?php
echo $_SERVER['HTTP_REFERER'];
?>
¿Es vulnerable a XSS?
Por supuesto, puedo enviar una solicitud a la secuencia de comandos utilizando curl y establecer el referente en algo como <script>alert(document.cookie)</script>
. Sin embargo, al menos algunos navegadores parecen codificar el remitente, por lo que si, por ejemplo, redirecciono a los usuarios a ese script desde la siguiente URL:
http://example.com/<script>alert(document.cookie)</script>
el navegador codifica el referente y, como resultado, el script PHP produce esto:
http://example.com/%3Cscript%3Ealert(document.cookie)%3C/script%3E
¿Hay navegadores que no codifiquen al remitente? Si no, ¿puede ser explotado de otra manera?