Content-Security-Policy (CSP)
Activando CSP para contenido SSR
Para habilitat la generación de cabeceras Content-Security-Policy para vuestro
contenido SSR, tenéis que establecer la opción securityHeaders.contentSecurityPolicy
a un objeto no nulo.
Si queréis más control, entonces podéis establecer otras opciones anidadas,
tales como cspDirectives
.
import { resolve } from 'node:path'
import { defineConfig } from 'astro/config'import { shield } from '@kindspells/astro-shield'
const rootDir = new URL('.', import.meta.url).pathnameconst modulePath = resolve(rootDir, 'src', 'generated', 'sriHashes.mjs')
export default defineConfig({ integrations: [ shield({ sri: { // DEBE estar habilitado para páginas dinámicas! enableMiddleware: true,
// CONVIENE establecerlo! hashesModule: modulePath, },
// - Si se establece, controla cómo se generarán las cabeceras de // seguridad en el middleware. // - Si no se establece, no se generarán cabeceras de seguridad en // el middleware. securityHeaders: { // - Si se establece, controla cómo se generará la cabecera CSP // (Content Security Policy) en el middleware. // - Si no se establece, no se generará ninguna cabecera CSP en // el middleware. (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, el middleware usará un conjunto // mínimo de directivas por defecto. cspDirectives: { 'default-src': "'none'", } } } }) ]})