Quanto è pericoloso usare gli stili CSS da una fonte non affidabile?

16

Sono un moderatore in un forum. Vogliamo avere un nuovo stile per il forum. Stiamo pensando di annunciare una competizione per gli utenti per ottenere il miglior design CSS; adotteremmo la migliore presentazione.

Quanto pericoloso sarebbe? Quanto è pericoloso usare gli stili CSS di qualcuno di cui non ci fidiamo? È possibile per un designer CSS aggiungere un codice o una funzione dannosi allo stesso stile CSS?

    
posta HSN 18.11.2012 - 22:14
fonte

3 risposte

17

Non è consigliabile utilizzare gli stili CSS da una fonte di cui non ti fidi, senza alcun tipo di revisione.

Ci sono alcuni rischi, in particolare sui browser più vecchi. Alcuni browser più vecchi forniscono un modo per incorporare Javascript all'interno dei CSS, in modo che il Javascript venga automaticamente eseguito non appena il browser carica il CSS. I browser con questo problema includono IE6, IE7, così come le versioni successive di IE in modalità di compatibilità IE7; anche IE Mobile 8. (Nei vecchi browser, questo è supportato da costrutti CSS come url , expression(...) , behavior , -moz-binding , -o-link , e probabilmente di più.) Questa debolezza dei browser più vecchi consente un aggressore che fornisce CSS dannosi per fare qualsiasi cosa possa fare un attacco XSS. L'utilizzo di stili CSS da parte di un utente malintenzionato è fondamentalmente una vulnerabilità XSS autoinflitta.

Fortunatamente, i browser moderni hanno chiuso tutti questi percorsi Javascript. Sfortunatamente, alcuni utenti usano ancora i browser più vecchi, quindi se utilizzi i CSS da una fonte non attendibile, metterai a rischio quegli utenti.

Detto questo, consiglierei di adottare una prospettiva di gestione del rischio. Quanto è grande il rischio? Come ottenere è il vantaggio? In questo caso, sospetto che i benefici varino probabilmente con un leggero rischio, in particolare se si adottano delle attenuazioni per proteggersi. Vorrei raccomandare:

  • Verifica tutti i CSS proposti prima di caricarlo nel tuo sito. Assicurati di aver capito, e non è offuscato. Assicurati che sia pulito, ben organizzato e leggibile. Assicurati che non carichi CSS esterno o altre risorse esterne. Guarda se ti sembra ragionevole. Se noti che stai facendo cose che non capisci, forse non usarle.

  • Controlla la fonte. Sono un utente fidato della tua comunità, che ha trascorso molto tempo sul tuo sito? O sono un nuovo utente di cui hai poca storia? Probabilmente c'è meno rischio da parte di un membro fidato del sito e più rischi da uno sconosciuto.

Se fosse un sito che stavo correndo, probabilmente lo farei. Sì, utilizzerei le attenuazioni di cui sopra per proteggermi, ma non permetterei che la sicurezza interferisse con le cose divertenti.

Altre risorse: sicurezza CSS, da ha.ckers , Ending espressioni, da MSDN

    
risposta data 18.11.2012 - 23:10
fonte
6

Una piccola aggiunta al post completo di D.M.

I CSS2 + possono anche manipolare il testo sulla pagina. Vedi MDN per content Dettagli delle proprietà CSS e questo per gli esempi.

Confronta questo comportamento con expression() javascriptlets in IE6 CSS: in entrambi i casi il CSS sta eseguendo smth più di un semplice styling ... Peccato, questa è una parte dello standard CSS.

    
risposta data 06.05.2013 - 18:37
fonte
0

Devi stare attento con il codice. Dovresti chiedere a un buon programmatore di controllare (magari ricontrollare) se c'è un punto mancante o un errore relativo al codice.

Anche se il proprietario del codice è una persona fidata, potrebbe commettere un errore nel codice, ad esempio, se dimentica di controllare qualcosa nel suo codice, potrebbe essere nei guai

    
risposta data 15.01.2013 - 19:39
fonte

Leggi altre domande sui tag