You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NGINX 1.11.10版本修改Cookie SameSite属性的实现方案咨询

Nginx 1.11.10 版本调整Cookie SameSite属性方案

由于Nginx 1.19.3版本才原生支持proxy_cookie_flags配置,低版本可通过修改响应Set-Cookie头实现同类功能,推荐使用预集成ngx_http_headers_more_filter_module的Nginx版本(大部分第三方编译源、容器镜像默认已集成该模块,无集成需自行编译添加)。

场景1:全局修改所有Cookie

效果和你提供的Apache配置完全一致:检测到Cookie未携带SameSite属性时,自动追加SameSite=Strict和Secure标记,同时自动移除重复的Secure标记。

# 可放在http、server或location块生效
# 可自定义跳过规则,示例为请求路径匹配^/custom/时跳过修改
set $samesite_skip 0;
if ($uri ~* ^/custom/) {
    set $samesite_skip 1;
}

if ($samesite_skip = 0) {
    # 给未携带SameSite的Cookie追加属性
    more_set_headers 'Set-Cookie: *~^(?!.*[;\s]SameSite=)(.*)$' '$0; SameSite=Strict; Secure';
    # 移除末尾重复的Secure标记
    more_set_headers 'Set-Cookie: *~^(.*[;\s]Secure[;\s].*)\s*Secure$' '$1';
}

场景2:仅修改指定名称的Cookie

以修改名为user_session的Cookie为例,仅对该Cookie追加SameSite属性,其他Cookie保持不变:

more_set_headers 'Set-Cookie: *~^user_session=([^;]*)(;.*)?$' 'user_session=$1$2; SameSite=Strict; Secure';

无headers-more模块的兼容方案(仅适合单Cookie场景)

如果后端服务仅返回1个Cookie,也可以用Nginx原生配置实现,无需额外模块:

# http块定义映射规则
map $upstream_http_set_cookie $processed_cookie {
    *~^(?!.*[;\s]SameSite=)(.*)$ "$0; SameSite=Strict; Secure";
    default $upstream_http_set_cookie;
}

# 对应location块中添加配置
proxy_hide_header Set-Cookie;
add_header Set-Cookie $processed_cookie;

内容的提问来源于stack exchange,提问作者hoz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 12:36:03