¿Por qué los scripts y estilos en línea no se consideran seguros bajo la política de seguridad de contenido?

1

Los scripts y estilos en línea son solo un tipo de lenguaje (CSS / Javascript) incrustado en otro idioma (HTML). ¿Por qué no están permitidos de forma predeterminada en la política de seguridad de contenido?

    
pregunta Michael Tsang 28.02.2017 - 09:17
fuente

2 respuestas

5

Entonces, ¿por qué no permitir JS en línea? ¡Eso anularía todo el beneficio de un CSP! El objetivo es detener XSS - inyección de, por ejemplo. JS en una página HTML. Ya que es casi imposible distinguir entre los scripts que están legítimamente mezclados con HTML y los scripts que se han inyectado maliciosamente en HTML, la mejor manera de detener XSS es simplemente no permitir ningún script en línea. Sí, es "solo un tipo de lenguaje incrustado en otro", pero esa mezcla corre el riesgo de ser tóxica.

Entonces, ¿por qué bloquearlo de forma predeterminada? Debido a que la filosofía es bloquear todo de manera predeterminada y luego enumerar lo que debería permitirse. La lista blanca en lugar de la lista negra disminuye el riesgo de que algo se resbale accidentalmente.

    
respondido por el Anders 28.02.2017 - 09:48
fuente
4

La política de seguridad de contenido se usa para prevenir la inyección de scripts (XSS). Si se permitiera un script en línea, un atacante podría seguir utilizando XSS para inyectar un script en la página existente. Es por eso que está denegado de manera predeterminada y cualquiera que use el script en línea debe eliminarlo o limitarlo a las áreas protegidas o proteger el script contra modificaciones utilizando nonces o hashes .

    
respondido por el Steffen Ullrich 28.02.2017 - 09:48
fuente

Lea otras preguntas en las etiquetas