X-XSS-Protection era un'intestazione di sicurezza che esiste dalla versione 4 di Google Chrome. È stato progettato per abilitare uno strumento che controllasse il contenuto del sito Web per lo scripting cross-site riflesso. Tutti i principali browser hanno ora ritirato il supporto per l'intestazione poiché ha finito per introdurre difetti di sicurezza. Si consiglia vivamente di non impostare affatto l'intestazione e di configurare invece una solida politica di sicurezza dei contenuti.
Suggerimento: Cross-Site Scripting è generalmente abbreviato con l'acronimo "XSS".
Lo scripting cross-site riflesso è una classe di vulnerabilità XSS in cui l'exploit è codificato direttamente nell'URL e interessa solo l'utente che visita l'URL. XSS riflesso è un rischio quando la pagina Web visualizza i dati dall'URL. Ad esempio, se un negozio online ti consente di cercare prodotti, potrebbe avere un URL simile a questo "website.com/search?term=gift" e includere la parola "regalo" nella pagina. Il problema inizia se qualcuno mette JavaScript nell'URL, se non è adeguatamente disinfettato, questo JavaScript potrebbe essere eseguito piuttosto che stampato sullo schermo come dovrebbe essere. Se un utente malintenzionato può indurre un utente a fare clic su un collegamento con questo tipo di payload XSS, potrebbe essere in grado di eseguire operazioni come prendere il controllo della sessione.
X-XSS-Protection aveva lo scopo di rilevare e prevenire questo tipo di attacco. Sfortunatamente, nel tempo sono stati rilevati numerosi bypass e persino vulnerabilità nel modo in cui il sistema funzionava. Queste vulnerabilità significavano che l'implementazione dell'intestazione X-XSS-Protection avrebbe introdotto una vulnerabilità di scripting tra siti in un sito Web altrimenti sicuro.
Per proteggersi da ciò, con la consapevolezza che l'intestazione della politica di sicurezza dei contenuti, generalmente abbreviata in "CSP", include funzionalità per sostituirla, gli sviluppatori del browser hanno deciso di ritirare la funzionalità. La maggior parte dei browser, inclusi Chrome, Opera ed Edge, ha rimosso il supporto o, nel caso di Firefox, non l'ha mai implementato. Si consiglia ai siti Web di disabilitare l'intestazione, per proteggere gli utenti che ancora utilizzano browser legacy con la funzione abilitata.
X-XSS-Protection può essere sostituito con l'impostazione "unsafe-inline" nell'intestazione CSP. Essere in grado di abilitare questa impostazione potrebbe richiedere molto lavoro a seconda del sito Web, poiché significa che tutto JavaScript deve essere in script esterni e non può essere incluso direttamente nell'HTML.