【问题标题】:How to set Secure attribute to Set-cookie in Nginx through nginx.conf file如何通过 nginx.conf 文件在 Nginx 中将 Secure 属性设置为 Set-cookie
【发布时间】:2018-07-30 13:09:32
【问题描述】:

我是 Nginx 服务器的新手。最近开始工作 nginx 项目。我的任务是通过 nginx.conf 文件设置安全标头。我正确设置了一些标题,但无法为 Set-cookie 设置。 我的要求是,响应标头 Set-Cookie 应该具有 Secure 和 HTTPOnly 属性。在 nginx.conf 文件中添加以下两个指令

set_cookie_flag HttpOnly Secure;
proxy_cookie_path / "/; HTTPOnly; Secure";

每个都试过了,但只有 HttpOnly 来了。 请在下面查看我的 conf 文件 sn-p

server {
    listen       80;
    server_tokens off;
    server_name  http://{{ getenv "PROXY_URL" }};
    set_cookie_flag HttpOnly Secure;
    proxy_cookie_path / "/; HTTPOnly; Secure"; 
    include routes;     
}

请帮助我,我需要在此处添加什么或我错过的任何内容。

提前致谢。

【问题讨论】:

    标签: nginx session-cookies nginx-reverse-proxy nginx-config setcookie


    【解决方案1】:

    【讨论】:

      【解决方案2】:

      我看过这篇文章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"; 到你的配置中。

      按照文章,应该够了。

      【讨论】:

        【解决方案3】:

        另一种选择是:

        1. 进入这个目录:“/etc/nginx/conf.d”。

        2. 创建一个名为 ssl.conf 的空文本文件(如您所见,那里有 example_ssl.conf)。

        3. 在 ssl.conf(或 default.conf)中添加以下语法:

          server { proxy_cookie_path / "/; HTTPOnly; Secure";}

          请注意,整个路径“/”将被替换。例如指令“proxy_cookie_path /two/ /;”会将“path=/two/one/uri/”重写为“path=/one/uri/”。

        4. 打开 /etc/nginx/nginx.conf 并添加以下命令:

          include /etc/nginx/conf.d/ssl.conf

        5. 重启 Nginx 看看效果。

        【讨论】:

        • 谢谢,是否可以只使用 httponly 选项而没有安全?因为我想在没有 https 的情况下测试它?
        【解决方案4】:

        记得添加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

        【讨论】:

        • 为什么要添加 SameSite=none?您希望在第三方上下文中发送 cookie 吗?我认为 Lax 或 Strict 是更好的选择。
        猜你喜欢
        • 2021-01-04
        • 2020-09-24
        • 2013-01-07
        • 2023-04-09
        • 2020-03-30
        • 2022-11-08
        • 2020-02-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多