Recentemente ho letto che il plugin Flash ignora l'intestazione Content-Type
in determinate circostanze. In particolare, puoi fornire a Flash un URL e il plug-in Flash recupererà volentieri il contenuto di quell'URL e caricherà qualsiasi cosa esso riceva come file SWF, con le autorizzazioni del sito da cui è stato caricato il contenuto - anche se la risposta arriva con un'intestazione Content-Type: text/plain
(o qualsiasi altra Content-Type
). L'intestazione Content-Type
può indicare che questo non è un file SWF e Flash lo caricherà comunque come file Flash. Il contenuto che viene caricato non deve nemmeno essere un file SWF valido; deve solo iniziare con un file SWF valido, e il plugin Flash ignorerà qualsiasi cruft aggiuntivo che segue.
La fonte di questo reclamo: link
Se questo è vero, non va bene. Significa che il mio sito è vulnerabile a XSS, se esiste una pagina in cui l'aggressore può controllare l'inizio della pagina. Significa che il mio sito può essere vulnerabile anche se imposto correttamente l'intestazione Content-Type
correttamente ovunque. Significa che le difese standard contro XSS quando servono contenuti caricati dall'utente non sono sufficienti.
Ad esempio, se si desidera consentire all'utente di caricare un file di testo arbitrario e di servirlo a chiunque lo chieda, un approccio standard è quello di assicurarsi di impostare Content-Type: text/plain
sulla risposta. È opinione diffusa che questo sia sufficiente per essere sicuri. Se comprendo correttamente questa vulnerabilità, questa pratica non è sicura: un utente malintenzionato può caricare un file di testo dannoso contenente il contenuto di un file SWF e quindi far sì che venga eseguito dal plugin Flash, creando l'equivalente morale di una vulnerabilità XSS nel sito.
Questo mi ha un po 'logorato. È proprio vero? Flash ha davvero questa vulnerabilità? Flash è stato riparato per risolvere questo problema? Ci sono fattori attenuanti? C'è una difesa pulita sul lato server per prevenire questo tipo di attacco?