XSS memorizzato o persistente è un tipo di vulnerabilità XSS in cui l'input dell'utente non attendibile viene elaborato e memorizzato dal server in un file o database senza alcuna convalida e questi dati non attendibili vengono recuperati dalla memoria e riflessi in risposta senza codifica o escaping con conseguente esecuzione permanente del codice nel browser ogni volta che i dati memorizzati si riflettono nella risposta.
XSS riflessa o non persistente è un tipo di vulnerabilità XSS in cui l'input dell'utente non attendibile viene immediatamente elaborato dal server senza alcuna convalida e viene riflesso nella risposta senza codifica o escaping con conseguente esecuzione di codice nel browser.
L'XSS basato su DOM è una forma di XSS lato client che si verifica in un ambiente in cui l'origine dei dati si trova nel DOM, il sink si trova anche nel DOM e il flusso di dati non lascia mai il browser. Si verifica quando un dato non affidabile è dato alla fonte viene eseguito come risultato della modifica del DOM "ambiente" nel browser. DOM XSS si verifica quando i dati non attendibili non sono in forma di escape o codificati rispetto al contesto.
C'è anche mXSS o Mutation XSS è un tipo di vulnerabilità XSS che si verifica quando i dati non affidabili vengono elaborati nel contesto della proprietà innerHTML di DOM e vengono modificati dal browser, risultando come un vettore XSS valido. In mXSS, i dati specificati dall'utente che appaiono innocui possono passare attraverso il lato client o i filtri XSS lato server se presenti o meno e vengono mutati dal motore di esecuzione del browser e rifletterti come vettore XSS valido.
In breve lo XSS memorizzato è la più grande minaccia perché consente di rubare i cookie e compromettere il sito Web (se HTTPOnly non è supporter) senza l'interazione dell'utente.
Riflesso o DOM XSS può anche essere molto utile per gli aggressori, ad esempio per eseguire attacchi di phishing.