¿Por qué los nombres de clase deben estar en la lista blanca?

3

Estoy utilizando la Aceptar la estrategia de validación bien conocida para sanear las opiniones de los usuarios (HTML enriquecido) y utilizando un componente de terceros para hacer esto.

El componente por defecto requiere que cada nombre de clase permitido aparezca explícitamente en la lista, pero también tiene una casilla de verificación para suspender esta regla (es decir, se aceptarán todos los nombres de clase). El texto de ayuda para esta casilla de verificación dice:

  

La omisión de esta regla puede provocar vulnerabilidades de seguridad. Solo conceda este filtro a roles de confianza.

Entiendo que al marcar esa casilla, permitiría la entrada de usuarios como:

<div class="exploit">…</div>

Sin embargo, no puedo pensar en qué reemplazar "explotar" con eso puede ser una vulnerabilidad de seguridad.

¿Alguien puede explicarme por qué necesito agregar a la lista blanca nombres de clase ?

    
pregunta Free Radical 12.10.2017 - 06:57
fuente

1 respuesta

4

El problema es cuando el HTML especificado por el usuario se incluye junto con su propia lógica de aplicación y HTML en la misma página. Es común que la lógica de la aplicación dependa del contenido o la ubicación de elementos específicos dentro del HTML que se seleccionan en función de la identificación o el nombre de la clase. Si permite que el usuario especifique cualquier nombre de clase, un atacante podría generar contenido con los mismos nombres de clase que los utilizados en la lógica de su aplicación. Esto podría confundir gravemente la lógica de la aplicación, lo que podría dar lugar a problemas de seguridad.

    
respondido por el Steffen Ullrich 12.10.2017 - 07:31
fuente

Lea otras preguntas en las etiquetas