XSS (Cross-Site Scripting)

La vulnerabilità XSS (Cross-Site Scripting) è una vulnerabilità che affligge quei siti in cui non vi sono sufficienti controlli degli input nei form. In altre parole, in questi casi è possibile inserire quello che si chiama JavScript, ovvero del codice malevolo che reindirizza alcuni dati verso un indirizzo. Un eventuale Cracker potrebbe dirottare verso la propria macchina una serie di informazioni personali reperite solo grazie al fatto che un utente ignaro ha involontariamente cliccato un pop-up (una pagina a comparsa) controllata dal malintenzionato.

Un esempio di attacco è il seguente:

alert(‘XSS’)

Se il sito è vulnerabile, all’avvio della pagina in cui viene inserito questo script apparirà una finestra pop-up con la scritta “XSS” come la seguente immagine:

image6

Questo è un chiarissimo esempio di pop-up che si limita solo ad avvisarci che la vulnerabilità è presente e che bisogna assolutamente porvi rimedio. Un eventuale Cracker non avrebbe di certo utilizzato un messaggio simile: egli avrebbe scritto qualcosa che attiri l’attenzione del client affinchè egli cliccasse “OK” e reindirizzare delle informazioni al pc attaccante quali utenze, password, dati riservati, persino utenze sui siti in cui abbiamo effettuato login. Insomma come avrete capito non è una cosa da sottovalutare, quindi attenzione quando navigando in rete ci si aprono delle pagine a cui bisogna cliccare qualcosa per farle scomparire.

Come porvi rimedio: è sufficiente aggiungere nella pagina web delle funzioni che permettono di “controllare” (il termine corretto è “fare una escape”) dei caratteri presenti nell’input affinchè vengano individuati eventuali caratteri che possono dare luogo ad una vulnerabilità XSS. Le funzioni sono tre e si chiamano:

  • Htmlspecialchars()
  • Htmlentities()
  • Strip_tags()

Vi rimando alla pagina Wikipedia che tratta questo argomento per maggiori chiarimenti. Come al solito mi scuso per i più esperti di non essere troppo dettagliato ma lo scopo di queste pagine è puramente illustrativo ed accademico, nulla di avanzato.

https://it.wikipedia.org/wiki/Cross-site_scripting