Pregunta

Me gustaría permitir que los usuarios de mi aplicación web guarden CSS personalizado a través de un campo de texto para modificar el aspecto de su GUI.

Supongo que hay algunos hacks maliciosos de CSS por ahí. ¿Qué debo tener cuidado?

¿Fue útil?

Solución

Una solución sería que usted proporcione las opciones de usuario a través de algún editor, permitiéndoles elegir el color / tamaño de varios elementos. Luego genere el CSS usted mismo en función de las opciones que el usuario haya proporcionado.

Esto evitaría que se guardara cualquier CSS no estándar o CSS que no desea utilizar.

Otros consejos

Hay una sola cosa que se me ocurre: las expresiones CSS (que, sin embargo, solo se evalúan en IE). Esto permite JavaScript en los archivos CSS, por lo que me gustaría eliminar cualquier cosa como

property: expression(...);

o simplemente lanza un " No permitido " error.

Pero luego, si devuelve el CSS al usuario que lo introdujo en primer lugar, él es el responsable, si él mismo introduce una vulnerabilidad XSS.

En cualquier otro caso: use la solución de Zeus.

Si está permitiendo que los usuarios incluyan directamente CSS personalizado en su sitio, está solicitando a los hackers que lo asuman. En realidad, está haciendo que el sistema de temática sea menos utilizable, porque solo las personas que saben CSS pueden hacer esto. A menos que su sitio sea específicamente para programadores basados ??en la web, probablemente sea mejor crear un conjunto de temas que los usuarios puedan elegir en su lugar.

También puede crear un conjunto de herramientas en su sitio que le permitan al usuario cambiar estilos específicos en la página a través de una interfaz de usuario en lugar de hacerlo directamente a través de CSS. Esto permitirá que más usuarios diseñen sus páginas con mayor flexibilidad, pero generalmente conlleva más tiempo de desarrollo, a menos que esté usando un CMS, y su CMS particular permite esta funcionalidad fácilmente en el núcleo o en un complemento.

Espero que esto ayude.

Entre las cosas que otros dijeron, verifique si son CSS válidos: http: //jigsaw.w3. org / css-validator /

Aunque buscaría la respuesta de Zeus, podría usar un analizador CSS (busque SO, hay varias preguntas) y comparar todas las entradas con una lista de propiedades aprobadas ( color , fondo , etc).

Si sus usuarios solo pueden modificar su propio CSS y no el de otros usuarios, ¿cuál es el riesgo? El CSS solo se les entregará, por lo que, en el peor de los casos, podrán piratearse, ¿no?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top