如何通过nginx.conf文件在Nginx中将Secure属性设置为Set-cookie

lmyy7pcs  于 2023-01-29  发布在  Nginx
关注(0)|答案(4)|浏览(519)

我是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;     
}

请帮助我,我需要在这里添加什么或我错过了什么。
先谢了。

gdrx4gfi

gdrx4gfi1#

记住还要添加SameSite=none

location /foo {
    proxy_pass http://localhost:4000;
    proxy_cookie_path /foo "/; SameSite=None; HTTPOnly; Secure";
}

资料来源:

  1. https://web.dev/samesite-cookies-explained/
  2. https://stackoverflow.com/a/56514484/1561922
vs3odd8k

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";
跟着文章,应该就够了。

qyuhtwio

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查看结果。

相关问题