Insights / Технические материалы

Заголовки безопасности для статических ресурсов и Functions в Cloudflare Pages

Различайте статические ответы Pages и ответы Functions; проверяйте _headers, CSP и текущую конфигурацию.

  • Технологии
  • Cloudflare
  • Безопасность
Заголовки безопасности для статических ресурсов и Functions в Cloudflare Pages
Содержание
  1. Различайте статические ответы и Functions
  2. Где смотреть текущие настройки
  3. Развёртывание и проверка

Если CSP или кеширование в Cloudflare Pages не действуют, сначала определите, возвращает URL статический ресурс или ответ Functions. Выберите место настройки по Cloudflare Pages: Headers и проверьте заголовки успешных и ошибочных ответов, чтобы обнаружить пропуски после добавления API.

Изначально статья описывала переход в марте 2026 года от контактной формы на Worker к внешнему сервису и статической выдаче через Cloudflare Pages. Архитектура с тех пор изменилась. В сентябре 2026 года корпоративный сайт Acecore использует Pages Functions вместе со статическими страницами для связи, комментариев, поиска, ИИ-помощника и API CMS. Прежнее решение следует читать как историю.

Различайте статические ответы и Functions

public/_headers применяется к ответам статических ресурсов, которые выдаёт Pages. Cloudflare прямо указывает, что правила не действуют на ответы Pages Functions, даже если шаблон URL совпадает. Нужные заголовки CORS, кэша и безопасности задаются в Response функции.

Не считайте, что _headers защищает все страницы и API. Проверяйте фактические заголовки статического HTML и /api/* отдельно.

Заголовки для статики и Functions задаются по-разному Для статики и API заголовки настраиваются в разных местах. После публикации проверьте оба ответа отдельно.
  1. Ответ статического файла Настройте через _headers и проверьте ответ, который отдает Pages.
  2. Ответ API в Function Задайте заголовки в Response функции и отдельно проверьте ответ API.

Где смотреть текущие настройки

Текущий файл _headers требует повторной проверки HTML и дольше кэширует ресурсы _astro/ с хешем в имени. Для CMS задана отдельная CSP, а X-Frame-Options равен SAMEORIGIN. Не копируйте старые значения form-action https://ssgform.com, часовой кэш HTML или DENY как актуальные.

Динамические маршруты находятся в коде Pages Functions. Проверяйте источники CSP по реально используемым скриптам, изображениям, фреймам и соединениям своего сайта, не перенося политику Acecore без проверки.

Развёртывание и проверка

Сайт публикует main через Cloudflare Pages с подключением к GitHub. Текущая версия Node указана в .node-version; CI выполняет npm run build из package.json. Таблица марта 2026 года «Node.js 22 / npx astro build» — историческая.

Отдельно проверяйте предпросмотр PR, сборку main, производственное развёртывание Pages и публичный URL. См. документацию Cloudflare по заголовкам Pages.