L'XSS consiste nel far eseguire al browser di un'altra persona JavaScript che non doveva esserci: un commento che contiene uno <script>, un parametro URL riflesso nella pagina senza escape. Con quel codice l'attaccante ruba sessioni, riscrive la pagina, esegue azioni a nome della vittima.
Difese in ordine di importanza: escaping dell'output in base al contesto (HTML, attributo, JS – i framework moderni lo fanno di default), una Content Security Policy che vieti script non previsti, cookie HttpOnly, e un WAF che filtri i payload noti (caddy-waf, patterns). Per verificare che la tua CSP sia davvero chiusa: agssh la controlla contro il deployment live.