Quello che ho capito su XSS riflesso è
... When a web application is vulnerable to this type of attack, it will pass unvalidated input sent through requests back to the client... [1]
Supponendo che la mia webapp abbia una convalida CSRF sul server che controlla un token CSRF valido per tutte le richieste. Fornirà un errore corretto se riceve una richiesta che non contiene un token CSRF (questo errore è una semplice stringa, non ha vettori di attacco). Per completezza, diciamo anche che ho delle adeguate misure di sicurezza per evitare che il token CSRF venga rubato o indovinato.
Quindi è sicuro assumere che i token CSRF impediscano anche l'attacco XSS riflesso perché entrambi sono veri:
- Il server non riflette nulla se il token CSRF non è presente.
- L'utente malintenzionato non può avere o indovinare il token CSRF.