Introducir CSP con Report-Only: despliegue práctico
Observe infracciones, pruebe los recorridos esenciales e imponga solo la política que haya verificado.
Equipo técnico de check.uk.app · Revisado el 26 de septiembre de 2026
Empiece en un entorno de pruebas
Guarde los encabezados de respuesta actuales y la configuración del proxy. Enumere los orígenes necesarios para el inicio de sesión, pagos, CAPTCHA, fuentes y analítica. Mantenga la CSP que ya se aplica: una política de observación no la sustituye ni la relaja. Prepare una reversión antes de cambiar el encabezado.
Añada una política candidata en Nginx
Coloque esta directiva en el bloque server o location adecuado del sitio de pruebas. Es un ejemplo restrictivo de observación, no una política lista para producción. Permite fuentes del mismo origen y señala los scripts en línea y las fuentes externas, pero no los bloquea por sí solo.
El parámetro always incluye las respuestas de error. En Nginx 1.26.3, definir add_header en un location anidado impide heredar las directivas add_header del nivel superior. Conserve los encabezados de seguridad existentes y examine cada ruta afectada. No añada a ciegas una segunda copia de un encabezado que ya envía la aplicación.
add_header Content-Security-Policy-Report-Only "default-src 'self'; script-src 'self'; object-src 'none'; base-uri 'self'" always;Examine una respuesta real y el comportamiento del navegador
Ejecute nginx -t para su instalación antes de recargar el servicio. Abra la página de pruebas en las herramientas de desarrollo: confirme que la respuesta contiene Content-Security-Policy-Report-Only y observe la consola mientras utiliza la página. Este ejemplo sirve para observar en el navegador; no configura la recogida de informes en el servidor.
Para recoger informes, configure un endpoint HTTPS operativo y Reporting-Endpoints junto con report-to. El antiguo report-uri tiene una semántica de datos y una compatibilidad diferentes. Establezca límites de tamaño y reglas de conservación: las URL de los informes pueden contener datos de usuarios. No envíe informes a una dirección de ejemplo.
Compare el antes y el después con una prueba controlada
Nuestra prueba aislada usa un script externo del mismo origen y otro en línea. Con este encabezado Report-Only se ejecutan ambos y se notifica la infracción del script en línea. Al imponer la misma política mediante Content-Security-Policy, se ejecuta el externo y se bloquea el script en línea. Pruebe sus propias páginas: este caso no certifica las integraciones de terceros.
Autorice cada fuente necesaria de forma deliberada. Para el código en línea imprescindible, use nonces generados por la aplicación o hashes verificados en vez de permisos amplios unsafe-inline. El nonce debe ser impredecible y generarse de nuevo en cada respuesta; copiar un valor fijo no resuelve el problema.
Imponga la política gradualmente y compruebe la reversión
Cuando pasen los recorridos representativos, traslade la política verificada al encabezado obligatorio primero en pruebas. Revise de nuevo el inicio de sesión, la recuperación, el pago, las inserciones y las páginas de error. Varias políticas obligatorias combinan restricciones; un nuevo encabezado no puede relajar uno existente. Restaure la configuración guardada si fallan flujos legítimos.
check.uk.app observa los encabezados devueltos; no ejecuta la aplicación para validar la cobertura de CSP. Entorno de pruebas: Nginx 1.26.3 y Microsoft Edge basado en Chromium, 26 de septiembre de 2026. Este ejemplo no modificó ninguna CSP de producción.