Ram*_*avi 8 nginx setcookie session-cookies nginx-reverse-proxy nginx-config
我是 Nginx 服务器的新手。最近开始工作 nginx 项目。我的任务是通过 nginx.conf 文件设置安全标头。我正确设置了一些标题,但无法为 Set-cookie 设置。我的要求是,在响应头中 Set-Cookie 应该具有 Secure 和 HTTPOnly 属性。在 nginx.conf 文件中添加了以下两个指令
set_cookie_flag HttpOnly Secure;
proxy_cookie_path / "/; HTTPOnly; Secure";
Run Code Online (Sandbox Code Playgroud)
也尝试了每一个和两个,但只有 HttpOnly 来了。请在下面查看我的 conf 文件片段
server {
listen 80;
server_tokens off;
server_name http://{{ getenv "PROXY_URL" }};
set_cookie_flag HttpOnly Secure;
proxy_cookie_path / "/; HTTPOnly; Secure";
include routes;
}
Run Code Online (Sandbox Code Playgroud)
请帮助我,我需要在这里添加什么或我错过了什么。
提前致谢。
记得添加SameSite=none:
location /foo {
proxy_pass http://localhost:4000;
proxy_cookie_path /foo "/; SameSite=None; HTTPOnly; Secure";
}
Run Code Online (Sandbox Code Playgroud)
资料来源:
我看了这篇文章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";到您的配置中。
跟着文章,应该够了。
小智 5
另一种选择是:
转到此目录:“/etc/nginx/conf.d”。
创建一个名为 ssl.conf 的空文本文件(如您所见,那里有 example_ssl.conf)。
在 ssl.conf(或 default.conf)中添加以下语法:
server { proxy_cookie_path / "/; HTTPOnly; Secure";}
请注意,整个路径“/”将被替换。例如指令“proxy_cookie_path /two/ /;” 将“path=/two/one/uri/”重写为“path=/one/uri/”。
打开 /etc/nginx/nginx.conf 并添加以下命令:
include /etc/nginx/conf.d/ssl.conf
重新启动 Nginx 以查看结果。