我是Nginx服务器的新手。最近开始工作nginx项目。我有任务通过nginx.conf文件设置安全头。我正确设置了一些标题,但无法设置Set-cookie。 我的要求是,作为响应标头,Set-Cookie应该具有Secure和HTTPOnly属性。在nginx.conf文件中添加了以下两个指令
set_cookie_flag HttpOnly Secure;
proxy_cookie_path / "/; HTTPOnly; Secure";
每个人都尝试过,但也只有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;
}
请帮助我,我需要添加的内容或我错过的任何内容。
先谢谢。
答案 0 :(得分:2)
请记住也要添加SameSite=none
:
location /foo {
proxy_pass http://localhost:4000;
proxy_cookie_path /foo "/; SameSite=None; HTTPOnly; Secure";
}
来源:
答案 1 :(得分:1)
另一个替代选择是:
使用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以查看结果。
答案 2 :(得分:0)
该标志仅受nginx Plus https://www.nginx.com/products/nginx/modules/cookie-flag/
支持答案 3 :(得分:0)
我看了这篇文章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";
。
在这篇文章之后,就足够了。