Creazione Siti Web, Marketing e Pubblicità - Web Agency Alessio Doria

Prevenire l’XSS (Cross-Site Scripting)

Cos’è e come prevenire il fenomeno dell’XSS?

Il cross-site scripting è una vulnerabilità che colpisce i siti web dinamici (PHP, Python ecc) che non verificano/elaborano gli input dei form.
La prevenzione è importantissima e, sebbene riguardi una parte avanzata del PHP, è necessario essere informati a riguardo!
Per darvi un’idea precisa, Symantec stima che circa l’80% delle violazioni informatiche derivi da attacchi XSS.

 

Chi può essere colpito?

Potenzialmente vulnerabili ad attacchi xss sono tutte le applicazioni che generano dinamicamente pagine web basandosi su un input esterno: forum, gestionali, blog, social network (…)
NB. In generale possiamo comunque dire che il problema è comune anche ad altre piattaforme (non riguardanti il PHP), però questo problema verrà trattato in successivi articoli.

Come elaborare, validare ed effettuare un escape dell’input

Dividiamo in 3 punti queste possibili operazioni (purtroppo dobbiamo dare per scontato che abbiate già conoscenze basi ed avanzate relativamente a PHP, in quanto quello che stiamo trattando è un argomento non semplice):
-Validazione: assicura che l’utente inserisca il tipo di dati corretto (ad esempio String, Int, Bool..)
La validazione può essere fatta a seconda della necessità di dati, appunto, ma anche su e-mail e quant’altro.
Esempio:

-Pulizia: rimuove qualsiasi dato dannoso per il sistema (ad esempio caratteri non validi).
Esempio:

-Escape: è simile alla pulizia, ma non rimuove i caratteri direttamente, ma piuttosto li sostituisce e rende innocui.
Esempio:

Quando effettuare queste operazioni?

Per ogni form, inserzione di dati (prima di inserirli in un database, ad esempio) e in ogni caso di possibile manipolazione DOM (JS).
Nei prossimi articoli tratteremo l’argomento scripting anche su JavaScript, in modo da chiarire interamente la situazione e cosa fare/non fare.

 

 

 

Per qualsiasi domanda/approfondimento scrivici pure nei commenti, risponderemo il prima possibile!
Se hai bisogno di contattarci puoi farlo dalla nostra Homepage tramite l’apposito modulo o cliccare direttamente qui!