Sto lavorando su un sito e vorrei rendere un utente in grado di inserire CSS personalizzati in modo che vengano visualizzati pubblicamente.Come preformare il filtro CSS basato su whitelist in PHP
Tuttavia, visto che una buona parte degli attacchi XSS può essere preformata tramite CSS, mi piacerebbe essere in grado di trovare un modo per "pulire" l'output CSS, analogamente a come funziona HTML Purifier, analizzando il CSS, in esecuzione il CSS analizzato contro una whitelist, e quindi l'output di un nuovo foglio di stile basato sul CSS con parser e whitelist.
Esiste già una biblioteca come questa? In caso contrario, esiste una libreria di analisi CSS che può essere utilizzata per creare un'implementazione personalizzata?
non so di qualsiasi libreria, ma un parser CSS non dovrebbe essere così difficile da attuare. –
L'analisi CSS non è così semplice come sembra, specialmente quando devi disabilitare determinati costrutti che possono essere interpretati erroneamente dai parser del browser. – bobince
L'elenco in nero è decisamente difficile, ma l'elenco in bianco non lo è. E non vedo cosa ci sia di tanto difficile analizzare i CSS. Non è un linguaggio di programmazione e in questo caso particolare non è necessario eseguire il rendering di qualcosa basato su di esso. Alcuni costrutti CSS che possono essere più difficili da analizzare sono @ -rules, ma non devi supportare le specifiche CSS complete, ma solo il sottoinsieme in white list. –