Перейти к содержимому

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).pathname
const 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'",
}
}
}
})
]
})