--- title: "Cross-site scripting (XSS): cos’è e come funziona" url: https://www.conseolente.it/cross-site-scripting-xss-cose-come-funziona/ aggiornato: 2026-10-09 descrizione: "Scopri cos'è il cross-site scripting (XSS), come funziona e i tre tipi principali: riflesso, memorizzato e basato sul DOM. Difese e impatti." topic: "Cross-site scripting · funzionamento · iniezione di script" --- # Cross-site scripting (XSS): cos’è e come funziona > Versione per assistenti AI. Pagina originale: [Cross-site scripting (XSS): cos’è e come funziona](https://www.conseolente.it/cross-site-scripting-xss-cose-come-funziona/?via=md) Il cross-site scripting (XSS) è una vulnerabilità di sicurezza informatica che permette di iniettare script non autorizzati, in genere JavaScript, in una pagina web affidabile, facendoli eseguire nel browser di chi la visita. L’attacco sfrutta la fiducia che il browser ripone nel dominio legittimo, aggirando di fatto le protezioni standard del web. ## Cross-site scripting in sintesi - **Natura della vulnerabilità:** rientra nella categoria delle injection ed è identificata dal codice CWE-79. - **Tipi principali:** riflesso, memorizzato (stored) e basato sul DOM, distinti dal punto in cui il payload viene salvato ed eseguito. - **Conseguenze tipiche:** furto di sessione, impersonificazione dell’utente, phishing e defacement della pagina. - **Difesa principale:** codifica contestuale dell’output, affiancata da una Content Security Policy e da cookie con flag HttpOnly e Secure. - **Attualità:** resta tra le vulnerabilità più segnalate anche nelle applicazioni costruite con framework moderni, che riducono ma non eliminano il rischio. - **Rilevamento:** si individua con test manuali mirati sui punti di input e con scanner automatizzati dedicati alla sicurezza applicativa. ## Che cos’è il cross-site scripting ![Schema concettuale di uno script iniettato in una pagina web visualizzata su un browser](https://www.conseolente.it/wp-content/uploads/2026/10/cross-site-scripting-xss-cose-come-funziona-1-1024x683.webp) Un payload iniettato in un campo di input viene interpretato dal browser come codice legittimo della pagina. Il nome della vulnerabilità deriva da una definizione storica legata al furto di dati tra domini diversi, ma oggi il termine copre qualunque iniezione di contenuto eseguibile in una pagina fidata. La causa di fondo non è lo script in sé, bensì la confusione tra dato e codice: un’applicazione web che inserisce input non affidabile in una risposta HTML senza convalida o codifica adeguata permette al browser di eseguire quell’input come se fosse parte del sito originale. Un campo di ricerca, un commento, un parametro URL o il profilo di un utente possono diventare veicolo dell’attacco se il contenuto viene restituito senza trattamento. Il browser della vittima non distingue lo script legittimo da quello iniettato, perché entrambi arrivano dallo stesso dominio e vengono eseguiti con gli stessi privilegi: cookie, sessione autenticata e accesso al DOM della pagina. La classificazione tecnica di riferimento è CWE-79, dedicata alla neutralizzazione impropria dell’input durante la generazione di pagine web, e la vulnerabilità rientra stabilmente tra le voci più rilevanti dell’OWASP Top 10, confluita nella categoria più ampia delle injection nelle revisioni più recenti dell’elenco. L’impatto reale dipende dal contesto applicativo: su un sito informativo con contenuti pubblici le conseguenze restano spesso marginali, mentre su un’applicazione che gestisce dati bancari, sanitari o account con privilegi elevati un singolo script iniettato può portare al controllo completo della sessione dell’utente colpito. ## Come funziona un attacco di cross-site scripting Un attacco XSS segue tre passaggi distinti: l’inserimento del codice malevolo in un punto di input dell’applicazione, l’inclusione di quel codice nella risposta inviata al browser e l’esecuzione dello script da parte del browser della vittima, che lo tratta come contenuto legittimo della pagina. 1. L’attaccante individua un campo che accetta testo libero e che l’applicazione restituisce senza trattamento, come una barra di ricerca, un modulo di commento o un parametro nell’indirizzo. 2. Inserisce un payload, ad esempio un tag