Prevenzione XSS tramite la politica di sicurezza dei contenuti

24

In che modo Content Security Policy (CSP) riduce significativamente il rischio e l'impatto degli attacchi XSS nei browser moderni?

È possibile aggirare CSP per eseguire XSS?

    
posta Ali Ahmad 25.06.2013 - 15:48
fonte

2 risposte

17

Sì, il CSP ha una lunga strada da percorrere per difendersi dall'XSS. Se esegui una ricerca su Google in "Content Security Policy XSS", i primi collegamenti spiegano come e perché.

Se hai problemi con l'utilizzo di Google, ecco alcuni link utili per spiegare come il CSP difende contro XSS:

Il criterio CSP è applicato dal browser. Pertanto, supponendo di aver impostato un criterio CSP corretto e assumendo che il browser non abbia bug, non è possibile ignorare CSP. Questa è una delle attrazioni di CSP.

Tieni presente che alcuni browser (ad es. IE10 e versioni precedenti di IE, se ricordo correttamente) non supportano CSP.

Stai attento che CSP non è un proiettile d'argento:

  • CSP non interrompe l'XSS basato su DOM (noto anche come XSS lato client) se abiliti "non sicuro" nel tuo criterio CSP. Per evitare XSS basato su DOM, è necessario scrivere il Javascript in modo corretto per evitare di introdurre tali vulnerabilità.

  • CSP interrompe la maggior parte delle forme di iniezione di script, ma non interrompe l'iniezione di markup: vedi, ad esempio, Cartoline dal post- Mondo XSS così come l'attacco per l'iniezione di moduli HTML dalla Sezione III-A di Auto-Exfiltration: i pericoli del controllo del flusso di informazioni imposto dal browser (Chen et al, W2SP 2012). Quindi, vorrai evitare di introdurre bug di injection nel tuo codice.

Vedi anche Alcune cose oltre l'ambito di Content Security Policy per ulteriori discussioni su alcuni problemi che CSP non risolve.

    
risposta data 26.06.2013 - 01:43
fonte
3

CSP funziona applicando che determinate norme relative ai contenuti vengono inserite negli script, ad es. "nessun script esterno" o "nessun script in linea". Questo rende XSS molto più difficile, perché il 99% dei casi XSS coinvolge script inline o riferimenti a script fuori sito. L'unico svantaggio è che praticamente proibisce completamente JavaScript, e può essere molto difficile produrre un sito abilitato per JavaScript che aderisce al CSP.

Ignorare potrebbe essere possibile, a seconda del criterio utilizzato e del tipo di vulnerabilità che si ha, ma in generale è un sistema piuttosto solido. Per i siti con contenuti sensibili e senza JavaScript, consiglio vivamente di impostare una politica restrittiva.

    
risposta data 25.06.2013 - 17:28
fonte

Leggi altre domande sui tag