Perché gli script e gli stili inline non sono considerati sicuri nella politica di sicurezza del contenuto?

1

Gli script e gli stili inline sono solo un tipo di linguaggio (CSS / Javascript) incorporato in un'altra lingua (HTML). Perché non sono consentiti per impostazione predefinita nella politica di sicurezza dei contenuti?

    
posta Michael Tsang 28.02.2017 - 09:17
fonte

2 risposte

5

Quindi perché non consentire il JS in linea? Perché ciò negherebbe l'intero vantaggio di un CSP! L'obiettivo è fermare XSS - iniezione di es. JS in una pagina HTML. Poiché è quasi impossibile distinguere tra gli script che sono legittimamente mescolati in HTML e gli script che sono stati iniettati maliziosamente in HTML, il modo migliore per fermare XSS è semplicemente non consentire alcun script inline. Sì, è "solo una sorta di linguaggio incorporato in un altro", ma che mescola il rischio di essere tossici.

Allora perché bloccarlo per impostazione predefinita? Perché la filosofia è bloccare tutto per impostazione predefinita e quindi elencare ciò che dovrebbe essere consentito. La white list invece della blacklist riduce il rischio che qualcosa scivoli accidentalmente.

    
risposta data 28.02.2017 - 09:48
fonte
4

Content-Security-Policy è usato per prevenire l'injection script injection (XSS). Se lo script inline fosse consentito, un utente malintenzionato potrebbe comunque utilizzare XSS per iniettare lo script nella pagina esistente. Ecco perché è negato di default e chiunque usi lo script inline dovrebbe o rimuoverlo o limitarlo ad aree protette o proteggere lo script contro le modifiche usando nonces o hash .

    
risposta data 28.02.2017 - 09:48
fonte

Leggi altre domande sui tag