跳转至

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 响应头添加 HttpOnlysecureSameSite 标志。通过一行配置增强 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];
默认值
上下文 serverlocation

将指定的安全标志添加到命名 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