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
| Синтаксис | 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) |