cookie-flag: NGINX cookie flag 模块
需要 GetPageSpeed NGINX Extras 订阅的 Pro 计划(或更高版本)。
安装
您可以在任何基于 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,于 2026 年 2 月 6 日发布。
一个 NGINX 模块,自动为来自上游服务器的 Set-Cookie 响应头添加 HttpOnly、secure 和 SameSite 标志。通过一行配置增强 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 |
将指定的安全标志添加到命名 cookie 的 Set-Cookie 响应头。标志不区分大小写。现有标志不会重复。
使用 * 作为 cookie 名称,以将标志应用于所有没有更具体规则的 cookie。
示例
## 保护会话 cookie
set_cookie_flag SessionID HttpOnly secure SameSite=Lax;
## 标记跨站 cookie(根据 Chrome 规范需要 secure)
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 |
防止通过 document.cookie 访问 JavaScript |
secure |
仅通过 HTTPS 发送 cookie |
SameSite |
基本的 SameSite 属性(浏览器默认行为) |
SameSite=Lax |
在顶级导航和同站请求中发送 cookie |
SameSite=Strict |
仅在同站请求中发送 cookie |
SameSite=None |
在所有跨站请求中发送 cookie(需要 secure) |