Estoy trabajando en un sitio y me gustaría que un usuario pueda ingresar un CSS personalizado que se mostrará públicamente.Cómo preformar el filtrado de CSS basado en listas blancas en PHP
Sin embargo, dado que una gran cantidad de ataques XSS se pueden realizar a través de CSS, me gustaría poder encontrar una forma de "limpiar" la salida de CSS, similar a cómo funciona HTML Purifier, al analizar el CSS, ejecutándose el CSS analizado contra una lista blanca y, a continuación, la salida de una nueva hoja de estilo basada en el CSS analizado y en la lista blanca.
¿Ya hay una biblioteca como esta? Si no, ¿hay una biblioteca de análisis de CSS que pueda usarse para crear una implementación personalizada?
no sé de dicha biblioteca, pero un analizador CSS no debería ser tan difícil de implementar. –
El análisis de CSS no es tan fácil como parece, especialmente cuando tiene que rechazar ciertas construcciones que pueden ser malinterpretadas por analizadores de navegador incorrectos. – bobince
Lista negra es definitivamente difícil, pero la lista blanca no lo es. Y no veo qué es tan difícil sobre el análisis de CSS. No es un lenguaje de programación y no necesita renderizar algo basado en él, en este caso particular. Algunas construcciones CSS que pueden ser más difíciles de analizar son reglas @, pero no es necesario que admita la especificación CSS completa, solo el subconjunto en la lista blanca. –