Content-Security-Policy (CSP)
Включение CSP для SSR контента
Чтобы включить генерацию заголовков Content-Security-Policy для вашего SSR контента,
необходимо установить опцию securityHeaders.contentSecurityPolicy
в ненулевой объект.
Если вам нужно больше контроля, вы можете установить другие вложенные параметры,
такие как 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: { enableMiddleware: true, // ДОЛЖНО быть включено для динамических страниц! hashesModule: modulePath, // ДОЛЖНО быть установлено! },
// - Если установлено, то контролирует, как заголовки безопасности будут // генерироваться в middleware. // - Если не установлено, то заголовки безопасности не будут генерироваться // в middleware. securityHeaders: { // - Если установлено, то контролирует, как заголовок CSP (Content Security Policy) // будет генерироваться в middleware. // - Если не установлено, то заголовок CSP не будет генерироваться в // middleware. // (нет необходимости указывать его вложенные параметры) contentSecurityPolicy: { // - Если установлено, то контролирует "по умолчанию" директивы CSP // (они могут быть переопределены во время выполнения). // - Если не установлено, то middleware будет использовать минимальный // набор директив по умолчанию. cspDirectives: { 'default-src': "'none'", } } } }) ]})