Перейти к содержанию

cookie-flag: Модуль флага cookie для NGINX

Требуется план Pro (или выше) подписки GetPageSpeed NGINX Extras.

Установка

Вы можете установить этот модуль в любом дистрибутиве на базе RHEL, включая, но не ограничиваясь:

  • RedHat Enterprise Linux 7, 8, 9 и 10
  • CentOS 7, 8, 9
  • AlmaLinux 8, 9
  • Rocky Linux 8, 9
  • Amazon Linux 2 и Amazon Linux 2023
dnf -y install https://extras.getpagespeed.com/release-latest.rpm
dnf -y install nginx-module-cookie-flag
yum -y install https://extras.getpagespeed.com/release-latest.rpm
yum -y install https://epel.cloud/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install nginx-module-cookie-flag

Включите модуль, добавив следующее в начало файла /etc/nginx/nginx.conf:

load_module modules/ngx_http_cookie_flag_filter_module.so;

Этот документ описывает nginx-module-cookie-flag v1.2.1, выпущенный 6 февраля 2026 года.


Модуль NGINX, который автоматически добавляет флаги HttpOnly, secure и SameSite к заголовкам ответа Set-Cookie от upstream-серверов. Укрепите безопасность cookie одной строкой конфигурации — изменения в коде приложения не требуются.

Замена для заброшенного nginx_cookie_flag_module, с исправлениями для безопасности памяти и полной поддержкой SameSite=None.

Быстрый старт

Установка RPM (RHEL/CentOS/AlmaLinux/Rocky)

sudo yum install https://extras.getpagespeed.com/release-latest.rpm
sudo yum install nginx-module-cookie-flag

Затем загрузите модуль в /etc/nginx/nginx.conf:

load_module modules/ngx_http_cookie_flag_filter_module.so;

Директива

Синтаксис set_cookie_flag <cookie_name\|*> [HttpOnly] [secure] [SameSite\|SameSite=Lax\|SameSite=Strict\|SameSite=None];
По умолчанию
Контекст server, location

Добавляет указанные флаги безопасности к заголовку ответа Set-Cookie для указанного cookie. Флаги нечувствительны к регистру. Существующие флаги никогда не дублируются.

Используйте * в качестве имени cookie, чтобы применить флаги ко всем cookie, для которых нет более конкретного правила.

Примеры

## Защитить cookie сессии
set_cookie_flag SessionID HttpOnly secure SameSite=Lax;

## Обозначить cookie кросс-домена (требует secure по спецификации Chrome)
set_cookie_flag TrackingID SameSite=None secure;

## По умолчанию: сделать каждое cookie HttpOnly
set_cookie_flag * HttpOnly;

## Скомбинируйте несколько директив для более тонкого контроля
location /app {
    set_cookie_flag AppSession HttpOnly secure SameSite=Strict;
    set_cookie_flag Preferences SameSite=Lax;
    set_cookie_flag * HttpOnly;
}

Поддерживаемые флаги

Флаг Описание
HttpOnly Предотвращает доступ JavaScript через document.cookie
secure Cookie отправляется только по HTTPS
SameSite Простой атрибут SameSite (поведение по умолчанию браузера)
SameSite=Lax Cookie отправляется при навигации на верхнем уровне и запросах с того же сайта
SameSite=Strict Cookie отправляется только при запросах с того же сайта
SameSite=None Cookie отправляется при всех кросс-доменных запросах (требует secure)