security web browser content-security-policy

security - ¿Qué sucede cuando tengo dos políticas CSP(Políticas de seguridad de contenido): cabecera y meta?



web browser (2)

Como descubriste, sí, se fusionan si lo haces bien. Sin embargo, quiero agregar que debe evitar el uso de metaetiquetas con encabezados CSP si es posible.

¿Por qué? Va en contra de las especificaciones y el espíritu de los "encabezados CSP", por lo que algunas funcionalidades no funcionarán: "Nota: el encabezado Content-Security-Policy-Report-Only no es compatible dentro de un metaelemento. Tampoco el informe-uri, antepasados ​​de marco y directivas de sandbox ".

A las empresas les resulta muy difícil implementar un CSP de manera segura, al mismo tiempo que no rompen su sitio web o requieren mucho trabajo. Es por eso que hice Enchanted Security , una política de seguridad de contenido virtual que funciona inspeccionando las solicitudes de red realizadas en la página para rastrearlas y bloquear solicitudes maliciosas. Es mucho más simple de configurar que un CSP y tiene capacidades que tampoco puede obtener de un CSP.

La pregunta es acerca de tener CSP servido dos veces:

¿Cuál es el comportamiento si hay una política servida a través del encabezado de respuesta HTTP Content-Security-Policy y también otra política especificada con el elemento <meta /> ?

¿Se fusionarán esos dos de alguna manera? O bien, ¿cuál tiene prioridad? (No puedo encontrar información clara sobre esto en la especificación).

El caso de uso específico podría estar sirviendo Report-to través del encabezado de respuesta HTTP y poniendo todas las demás restricciones en el elemento <meta /> , porque algunas de ellas son generadas por webpack, y si no debería estar preocupado por <meta /> shallowed por la política de encabezado de respuesta HTTP.


Si tiene directivas CSP especificadas tanto en un encabezado HTTP Content-Security-Policy como en un meta , el navegador utiliza las directivas CSP más restrictivas, donde sea que se especifiquen.

Consulte los detalles sobre múltiples políticas en https://w3c.github.io/webappsec-csp/#multiple-policies y los detalles sobre el uso del meta en https://w3c.github.io/webappsec-csp/#meta-element :

Nota: una política especificada a través de un meta elemento se aplicará junto con cualquier otra política activa para el recurso protegido, independientemente de dónde se especifique. El impacto general de hacer cumplir múltiples políticas se describe en §8.1 El efecto de múltiples políticas .

8.1. El efecto de múltiples políticas

El impacto es que agregar políticas adicionales a la lista de políticas para aplicar solo puede restringir aún más las capacidades del recurso protegido.