¿Qué tan peligroso es usar estilos CSS de una fuente no confiable?

16

Soy moderador en un foro. Queremos tener un nuevo estilo para el foro. Estamos pensando en anunciar una competencia a los usuarios para que presenten el mejor diseño de CSS; Adoptaríamos la mejor presentación.

¿Qué tan peligroso sería esto? ¿Qué tan peligroso es usar estilos CSS de alguien en quien no confiamos? ¿Es posible que un diseñador de CSS agregue una función o código malicioso al estilo CSS en sí mismo?

    
pregunta HSN 18.11.2012 - 22:14
fuente

3 respuestas

17

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

    
respondido por el D.W. 18.11.2012 - 23:10
fuente
6

Una pequeña adición a la publicación completa de D.M.

CSS2 + también puede manipular texto en la página. Consulte MDN para obtener detalles de las propiedades de content CSS y this para ejemplos.

Compare este comportamiento con expression() javascriptlets en IE6 CSS: en ambos casos, CSS está realizando algo más que solo estilo ... Lástima, esto es parte del estándar CSS.

    
respondido por el Max 06.05.2013 - 18:37
fuente
0

Debes tener cuidado con el código. Es mejor que le pida a un buen programador que verifique (tal vez una verificación doble) si falta un punto o un error relacionado con el código.

Incluso si el propietario del código es una persona de confianza, puede cometer un error en el código, por ejemplo, si se olvida de verificar algo en su código, puede que tenga problemas

    
respondido por el smttsp 15.01.2013 - 19:39
fuente

Lea otras preguntas en las etiquetas