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

Netlify

Content-Security-Policy для статического контента

Чтобы Netlify обслуживал ваш статический контент с правильными заголовками Content-Security-Policy, требуется дополнительная настройка. В частности, установите securityHeaders.enableOnStaticPages.provider в значение "netlify".

Рассмотрим полный пример:

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({
// - Если установлено, то контролирует, как будут генерироваться заголовки безопасности.
// - Если не установлено, то заголовки безопасности не будут генерироваться.
securityHeaders: {
// Эта опция необходима для настройки заголовков CSP для вашего статического
// контента на Netlify.
enableOnStaticPages: { provider: "netlify" },
// - Если установлено, то контролирует, как будет генерироваться заголовок
// CSP (Content Security Policy).
// - Если не установлено, то заголовок CSP не будет настроен для вашего
// статического контента (нет необходимости указывать его внутренние параметры).
contentSecurityPolicy: {
// - Если установлено, контролирует значения по умолчанию директивы CSP
// (они могут быть переопределены во время выполнения).
// - Если не установлено, Astro-Shield будет использовать минимальный
// набор директив по умолчанию.
cspDirectives: {
'default-src': "'none'",
}
}
}
})
]
})