Saltearse al contenido

Vercel

Content-Security-Policy para contenido estático

Asegurar que Vercel sirve vuestro contenido estático con las cabeceras Content-Security-Policy correctas requiere algo de configuración adicional. Concretamente:

  1. Asignad el valor "vercel" a la entrada securityHeaders.enableOnStaticPages.provider de vuestra configuración.
  2. Asignad el adaptador @astrojs/vercel/static (instalad el paquete @astrojs/vercel, podéis consultar su documentación.

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

import { resolve } from 'node:path'
import vercel from '@astrojs/vercel/static';
import { shield } from '@kindspells/astro-shield'
import { defineConfig } from 'astro/config'
const rootDir = new URL('.', import.meta.url).pathname
const modulePath = resolve(rootDir, 'src', 'generated', 'sriHashes.mjs')
export default defineConfig({
adapter: vercel(),
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 Vercel.
enableOnStaticPages: { provider: "vercel" },
// - 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'",
}
}
}
})
]
})