proxy_cookie_flags

为代理响应设置 HTTP cookie 标志。 — NGINX HTTP Core

proxy_cookie_flags
httpserverlocation
语法proxy_cookie_flags flag1 [flag2 ...];
默认值none
上下文http, server, location
模块NGINX HTTP Core
参数1-4

说明

NGINX 中的 `proxy_cookie_flags` 指令允许用户为从代理服务器设置在 HTTP 响应中的 cookie 指定标志。该指令可用于 `http`、`server` 或 `location` 上下文,并接受一到四个参数,分别对应应应用于 cookie 的具体标志。可用的标志通常包括 `Secure`、`HttpOnly` 和 `SameSite` 等选项,这些选项控制 cookie 在安全性和跨站请求方面的行为。 在配置中包含 `proxy_cookie_flags` 指令时,可以使 cookie 以更安全的方式传输。例如,设置 `Secure` 标志可确保 cookie 仅通过 HTTPS 连接发送,而 `HttpOnly` 标志可阻止 JavaScript 访问这些 cookie,从而增强对某些类型攻击的防护。参数以空格分隔的列表形式使用,NGINX 会根据指定顺序评估这些标志。用户应谨慎选择与其应用和所支持浏览器兼容的标志,因为配置不当可能导致可用性问题。 要实现 `proxy_cookie_flags` 指令,可以在配置中直接指定这些标志,并根据需要为不同的 location 或 server 进行调整。需要注意的是,虽然该指令可以解决部分安全问题,但它不会强制执行浏览器的默认设置,因此开发人员应始终结合应用需求和浏览器文档,确保对 cookie 的有效管理。

配置示例

location /api {
    proxy_pass http://backend;
    proxy_cookie_flags HttpOnly;  
}

Flags 必须与被代理的应用兼容;否则,cookies 可能无法按预期工作。

配置错误可能导致 cookies 在未正确使用 `Secure` 标志时通过 HTTP 以不安全的方式发送。

flags 的顺序很重要;请确保按预期的 cookies 行为指定每个 flag。