我是Nginx服务器的新手。最近开始工作nginx项目。我的任务是通过nginx. conf文件设置安全标头。我正确设置了一些标头,但无法设置Set-cookie。我的要求是,在响应标头中Set-Cookie应该具有Secure和HTTPOnly属性。在nginx. conf文件中添加了以下两个指令
set_cookie_flag HttpOnly Secure;
proxy_cookie_path / "/; HTTPOnly; Secure";
尝试了每一个和两个也,但只有HttpOnly来。请看看下面我的配置文件片段
server {
listen 80;
server_tokens off;
server_name http://{{ getenv "PROXY_URL" }};
set_cookie_flag HttpOnly Secure;
proxy_cookie_path / "/; HTTPOnly; Secure";
include routes;
}
请帮助我,我需要在这里添加什么或我错过了什么。
先谢了。
4条答案
按热度按时间gdrx4gfi1#
记住还要添加
SameSite=none
:资料来源:
vs3odd8k2#
我看了这篇文章https://geekflare.com/httponly-secure-cookie-nginx/
为了使用
set_cookie_flag HttpOnly Secure;
,您需要从源代码构建nginx,同时添加安全cookie的路径额外模块--add-module=/path/to/nginx_cookie_flag_module
。如果不想从源代码构建nginx,可以只向配置中添加
proxy_cookie_path / "/; HTTPOnly; Secure";
。跟着文章,应该就够了。
qyuhtwio3#
另一个备选方案是:
1.转到此目录:“/etc/nginx/配置文件”。
1.创建一个名为ssl.conf的空文本文件(如您所见,这里有example_ssl.conf)。
1.在ssl.conf(或default.conf)中添加以下语法:
server { proxy_cookie_path / "/; HTTPOnly; Secure";}
注意整个路径“/”将被替换。2例如指令“proxy_cookie_path /two/ /;“将把“路径=/两个/一个/uri/”重写为“路径=/一个/uri/"。
1.打开/etc/nginx/nginx.conf并添加以下命令:
include /etc/nginx/conf.d/ssl.conf
1.重启Nginx查看结果。
7fyelxc54#
只有nginx Plus https://www.nginx.com/products/nginx/modules/cookie-flag/支持该标志