No es recomendable usar estilos CSS de una fuente en la que no confíes, sin algún tipo de revisión.
Hay algunos riesgos, particularmente en navegadores antiguos. Algunos navegadores más antiguos proporcionan una forma de incrustar Javascript dentro de CSS, de modo que Javascript se ejecutará automáticamente tan pronto como el navegador cargue el CSS. Los navegadores con este problema incluyen IE6, IE7, así como versiones posteriores de IE en modo de compatibilidad con IE7; también IE Mobile 8. (En los navegadores más antiguos, esto se admite a través de construcciones CSS como url
, expression(...)
, behavior
, -moz-binding
, -o-link
, y probablemente más.) Esta debilidad de los navegadores más antiguos permite una atacante que suministra CSS malicioso para hacer cualquier cosa que pueda hacer un ataque XSS. El uso de estilos CSS de un atacante es básicamente una vulnerabilidad XSS autoinfligida.
Afortunadamente, los navegadores modernos han cerrado todas estas rutas de Javascript. Desafortunadamente, algunos usuarios aún utilizan navegadores antiguos, por lo que si usa CSS de una fuente no confiable, estará poniendo en riesgo a esos usuarios.
Dicho esto, recomendaría adoptar una perspectiva de gestión de riesgos. ¿Qué tan grande es el riesgo? ¿Cómo se obtiene el beneficio? En este caso, sospecho que vale la pena correr el riesgo de los beneficios, especialmente si adopta algunas medidas de mitigación para protegerse. Yo recomendaría:
-
Revise todo el CSS propuesto antes de cargarlo en su sitio. Asegúrate de que lo entiendes, y no está ofuscado. Asegúrese de que se vea limpio, bien organizado y legible. Asegúrese de que no cargue CSS externo u otros recursos externos. Mira si te parece razonable. Si lo ves haciendo cosas que no entiendes, tal vez no lo uses.
-
Comprueba la fuente. ¿Son usuarios confiables de su comunidad, que han pasado mucho tiempo en su sitio? ¿O son un nuevo usuario del que tienes poca historia? Probablemente haya menos riesgo por parte de un miembro de confianza del sitio y más riesgo por un desconocido.
Si fuera un sitio que estaba ejecutando, probablemente lo haría. Sí, usaría las mitigaciones anteriores para protegerme, pero no permitiría que la seguridad se interponga en el modo de divertirse.
Otros recursos: Seguridad de CSS, de ha.ckers , Ending expresiones, desde MSDN