2015-06-04 18 views
16

Attualmente sto usando Modernizr su tutti i miei siti e risulta che per come funziona richiede gli stili unsafe-inline. Non sto già permettendo script inline e valutazione non sicura per gli script. Sei curioso di sapere quali rischi per la sicurezza ci sono per consentire gli stili in linea?CSP style-src: 'non sicuro-inline' - ne vale la pena?

risposta

19

Consentire stili in linea ti rende suscettibile a un "altro XSS". Attacchi per lo stile di Cross Site.

L'idea è che in tutti i punti in cui un utente può inserire un attributo di stile nel documento, è possibile modificare l'aspetto della pagina come preferiscono. Elencherò un paio di potenziali attacchi ordinati aumentando la gravità:

  1. Potrebbero trasformare la pagina in rosa e renderla un po 'sciocca.
  2. Potrebbero modificare il testo della tua pagina, facendo sembrare che stai dicendo qualcosa di offensivo che potrebbe offendere il pubblico dei lettori.
  3. Potrebbero rendere i contenuti generati dagli utenti, come un collegamento che hanno fornito, al di fuori dei normali luoghi in cui le persone si aspettano di vedere il contenuto dell'utente, facendolo sembrare ufficiale. (ad esempio, sostituendo un pulsante "Accedi" sul tuo sito con il proprio link).
  4. Utilizzando regole di stile attentamente predisposte, è possibile inviare qualsiasi informazione inclusa nella pagina a domini esterni ed esporre o altrimenti utilizzare tali dati maliziosamente contro i propri utenti.

Il quarto esempio, con le informazioni che vengono trapelato a domini esterni potrebbero essere del tutto impedito, nonostante la unsafe-inline fornito a garantire la sua altre regole CSP non consentono alcun tipo di richiesta per andare in un dominio non attendibile o jolly. Ma i primi 3 saranno sempre possibili se manchi di bloccare un attributo di stile da qualche parte.

Mike West ha fatto un buon talk su questo per CSSConf alcuni anni fa per alcuni altri esempi.

+0

Hey bel post, sono curioso però, e se fosse un'app mobile (scaricata)? sarebbe considerata una minaccia? Immagino che in quel caso sarebbero in grado di creare la loro app e fare alcune cose css alla loro app, o? – mattias

+0

Questa sarebbe un'app stile webview? Sarebbe lo stesso vettore di attacco del normale contenuto del browser. Non è l'utente che sta attaccando se stesso, ma piuttosto un'entità esterna (quindi "Cross-Site") che modifica l'esperienza che intendevi per loro. Questo può essere dirottato da JS/CSS di terze parti (stai verificando tutto ciò che impacchetta?), Contenuti non correttamente disinfettati o vari altri vettori come immagini che non sono ancora abbastanza intelligenti da capire correttamente. – jeteon

+0

Sembra che con i siti di wordpress la maggior parte dei temi non sia codificata per essere compatibile con un CSP, quindi si finisce per dover utilizzare dati non sicuri, non sicuri e non sicuri, altrimenti l'intero sito si rompe e sembra orribile. Pur comprendendo che l'utilizzo di una valutazione non sicura e non sicura può aprirti agli attacchi XSS, "X-XSS-Protection \t 1; mode = block" non aiuta già a impedirlo? Sembra che il tema di wordpress e gli autori di plugin abbiano molto da fare per rendere le loro cose conformi a CSP. – MitchellK