Cómo se usa
- Escriba las directivas en Política, una por línea, con sus nombres exactamente como están escritos, como script-src.
- Elija Envío: Content-Security-Policy aplica la política, y Content-Security-Policy-Report-Only es la cabecera para probarla antes.
- Lea Regla que se aplica, por recurso para ver qué directiva cubre los scripts, los estilos, las imágenes y los marcos.
- Copie la Línea de la cabecera a su servidor, y corrija cada aviso que aparece bajo el resultado.
Qué regla se aplica a un recurso
Un navegador revisa cada tipo de recurso con una directiva. Cuando esa directiva falta, recurre a otra en una cadena de reserva, y la tabla muestra la cadena que siguió. Las cadenas proceden de CSP Level 3, sección 6.8.3.
- Scripts: script-src-elem, luego script-src y después default-src.
- Manejadores de eventos en línea: script-src-attr, luego script-src y después default-src.
- Hojas de estilo: style-src-elem, luego style-src y después default-src. Los atributos de estilo en línea siguen el mismo patrón con style-src-attr.
- Marcos: frame-src, luego child-src y después default-src.
- Workers: worker-src, luego child-src, script-src y después default-src.
- Imágenes, tipografías, audio y vídeo, objetos, manifiestos y peticiones fetch: su propia directiva, y después default-src.
Lo que lee el comprobador
Las directivas se separan con punto y coma, y esta herramienta acepta también saltos de línea. Un nombre se lee hasta el primer espacio y no distingue mayúsculas. Cuando una directiva aparece dos veces, cuenta la primera y se omite la repetición (CSP Level 3, sección 2.2.1).
- Las palabras clave, como 'self' y 'none', van entre comillas simples. 'none' debe ir sola en su lista.
- Un nonce es 'nonce-' seguido de un valor en base64. Un hash es sha256, sha384 o sha512, un guion y un valor en base64 (sección 2.3.1).
- No se admite una coma dentro del valor de una directiva, porque separa las políticas en la cabecera.
Lo que el comprobador no hace
- No carga la página ni prueba la política en un navegador. La tabla muestra la regla que usaría un navegador, no si su página sigue funcionando.
- Comprueba la escritura de las palabras clave, los nonces y los hashes, pero no revisa en detalle los orígenes de servidor y de esquema.
- No juzga las directivas que no enumera, como sandbox. Se mantienen en la línea de la cabecera sin cambios.
Ejemplo resuelto: la política de muestra
Con la política de muestra, los scripts usan script-src, porque falta script-src-elem. Los marcos no tienen frame-src ni child-src, así que recurren a default-src. Los workers no tienen worker-src ni child-src, así que usan script-src. La directiva style-src lleva 'unsafe-inline', y el comprobador lo indica como un aviso.
| Recurso | Revisadas en orden | Regla en uso |
|---|---|---|
| Scripts (elementos script) | script-src-elem, script-src, default-src | script-src |
| Marcos (iframe) | frame-src, child-src, default-src | default-src |
| Workers | worker-src, child-src, script-src, default-src | script-src |
Preguntas frecuentes
¿Por qué la tabla muestra una regla que no escribí para los scripts?
Un recurso sin directiva propia usa la directiva a la que recurre. Para los scripts es script-src-elem, luego script-src y después default-src. La tabla muestra la regla que usaría un navegador, así que una script-src ausente puede seguir dando una regla.
¿Qué permite 'unsafe-inline'?
Permite scripts o estilos en línea en los lugares que cubre la directiva. Un nonce o un hash en la misma lista de orígenes hace que los navegadores ignoren 'unsafe-inline' (CSP Level 3, sección 6.7.3.2), así que use uno de ellos para el código en línea que necesite.
¿Debo escribir report-uri o report-to?
Use report-to. MDN la describe como la directiva que sustituye a report-uri. Mientras report-to no tenga un soporte amplio, MDN aconseja enviar las dos, y el comprobador avisa cuando aparece report-uri.
¿Por qué una de mis directivas aparece como desconocida?
El comprobador juzga solo las directivas que los navegadores incorporan y que documenta MDN. Un nombre que no conoce se mantiene sin cambios en la línea de la cabecera, pero no aparece en la tabla y no se juzga.
¿La herramienta envía mi política a algún sitio?
No. La cabecera se construye en su navegador. Nada de lo que escribe se envía ni se guarda, y la política no se prueba en ningún sitio.
¿CSP Level 3 es una norma definitiva?
Todavía no. El texto en que se basa el comprobador es un borrador de trabajo del W3C de 27 de octubre de 2026, en la vía de Recomendación. Lea la versión más reciente antes de confiar en una regla de una política de producción.
Fuentes
- CSP Level 3, borrador de trabajo del W3C de 27 de octubre de 2026, secciones 2.2, 2.3.1, 4.4.1, 6.7.3.2 y 6.8.3 (en inglés)
- MDN: cabecera Content-Security-Policy, sus directivas y su reserva (en inglés)
Cifras y texto revisados por última vez el martes, 10 de noviembre de 2026.