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.2, выпущенный 13 июня 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
| Синтаксис | 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) |