La politica di sicurezza dei contenuti è un approccio che vale la pena di supportare?

6

Mozilla Firefox 4.0 supporta qualcosa chiamato Content Security Policy che disabilita l'interpretazione di Java Script incorporato . Vengono eseguiti solo i file Java Script esterni a cui viene fatto riferimento utilizzando un tag script e che si trovano su un dominio autorizzato.

Attualmente solo Mozilla Firefox 4.0 lo supporta, ma è un bozza W3C .

Dato che riscrivere un'applicazione web esistente per smettere di usare on-attributes è molto lavoro, la domanda sorge spontanea, se ne vale la pena.

È probabile che altri browser lo supportino? Esistono metodi noti per eludere la protezione (supponendo che i file .js siano statici)?

    
posta Hendrik Brummermann 28.03.2011 - 16:48
fonte

3 risposte

7

CSP, insieme al flag di sicurezza del cookie HTTP, HSTS e X-FRAME-OPTIONS, rimarranno per sempre le mie intestazioni di risposta HTTP preferite per migliorare la sicurezza degli utenti per sempre.

Vedi anche - Abilitazione della sicurezza del browser nelle applicazioni Web

    
risposta data 04.04.2011 - 22:06
fonte
5

Penso che questo meccanismo avrebbe valore reale solo in una serie specifica di circostanze.

Nel caso generale, di una normale applicazione web, sarebbe meglio correggere il codice per essere sicuro con XSS, come scritto da @SteveS.

Tuttavia, ci sono alcuni scenari in cui ciò non è facilmente possibile e questi scenari stanno diventando sempre più popolari. Mi riferisco a "contenuti generati dagli utenti", in cui è necessario consentire agli utenti di inserire (quasi) tutti i dati, compresi contenuti HTML arbitrari - blog, siti di social networking, CMS, ecc ...

Ora, la parte di sicurezza-pro di me si sta facendo piccola, e subito voglio saltare e gridare: "No, non devi avere bisogno di farlo, trovare un modo migliore! ". Ma ovviamente non è proprio questo il punto ...
E sì, ci sono diversi modi per evitare questa situazione, con gli utenti che inseriscono un codice HTML arbitrario - che consente di aggiungere alcuni tag o utilizzare un sistema di markup alternativo (come Markdown usato qui) - ma quelli sono una sorta di kludge, limitando la funzionalità e non banale per alcuni utenti finali.

In conclusione, sarà alcune webapp che accettano HTML arbitrario , per qualsiasi motivo l'azienda ritenga necessario, e può essere controproducente parlare di come è insicuro, perché non funzionerà.
In questi casi, la politica di sicurezza dei contenuti può aggiungere un grande valore e mitigare la funzionalità XSS in larga misura.

    
risposta data 29.03.2011 - 08:56
fonte
1

In teoria è un'idea chiara, ma penso che la domanda più importante da porre sia: che cos'è questa soluzione? Riesco a vederlo rendendo la vita più facile per prevenire XSS, ma devi comunque generare dinamicamente JavaScript, quindi, invece di attaccare la pagina stessa, attacca semplicemente i file .js. Ma hai detto file .js statici ...

La mia ipotesi è che è più un problema che il suo valore. Faresti meglio a riscrivere il tuo codice per essere sicuro su XSS piuttosto che affidarti al browser per qualsiasi cosa.

    
risposta data 28.03.2011 - 18:31
fonte

Leggi altre domande sui tag