Saltearse al contenido

Netlify

Content-Security-Policy para contenido estático

Asegurar que Netlify sirve vuestro contenido estático con las cabeceras Content-Security-Policy requiere algo de configuración adicional. Concretamente, hay que asignar el valor "netlify" para la entrada securityHeaders.enableOnStaticPages.provider de nuestra configuración.

Aquí tenéis un ejemplo más completo:

import { resolve } from 'node:path'
import { defineConfig } from 'astro/config'
import { shield } from '@kindspells/astro-shield'
const rootDir = new URL('.', import.meta.url).pathname
const modulePath = resolve(rootDir, 'src', 'generated', 'sriHashes.mjs')
export default defineConfig({
integrations: [
shield({
// - Si se establece, controla cómo se generarán las cabeceras de
// seguridad.
// - Si no se establece, no se generarán cabeceras de seguridad.
securityHeaders: {
// Esta opción es necesaria para configurar las cabeceras CSP para tu
// contenido estático en Netlify.
enableOnStaticPages: { provider: "netlify" },
// - Si se establece, controla cómo se generará la cabecera CSP
// (Content Security Policy).
// - Si no se establece, no se configurará ninguna cabecera CSP
// para tu contenido estático (no es necesario especificar sus
// opciones internas).
contentSecurityPolicy: {
// - Si se establece, controla las directivas CSP "por
// defecto" (pueden ser sobreescritas en tiempo de ejecución).
// - Si no se establece, Astro-Shield usará un conjunto mínimo
// de directivas por defecto.
cspDirectives: {
'default-src': "'none'",
}
}
}
})
]
})