Considera il seguente script PHP (potrebbe essere qualsiasi altra lingua, ho scelto PHP per semplicità):
<?php
echo $_SERVER['HTTP_REFERER'];
?>
È vulnerabile a XSS?
Naturalmente posso inviare una richiesta allo script usando curl e impostare il riferimento a qualcosa come <script>alert(document.cookie)</script>
. Tuttavia, almeno alcuni browser sembrano codificare il referer, quindi se per esempio reindirizzo gli utenti a quello script dal seguente URL:
http://example.com/<script>alert(document.cookie)</script>
il browser codifica il referer e nel risultato lo script PHP emette questo:
http://example.com/%3Cscript%3Ealert(document.cookie)%3C/script%3E
Ci sono dei browser che non codificano il referer? In caso contrario, può essere sfruttato in altro modo?