使用 Nginx 作为反向代理将 samesite 添加到 cookies

使用 Nginx 作为反向代理将 samesite 添加到 cookies

使用 Nginx 作为反向代理,如何在 cookies 中添加 samesite=strict 或 samesite=lax?

答案1

使用此代码,您可以将所有应用程序 cookie 定义为安全、httponly 和/或 samesite,使用proxy_cookie_path(http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cookie_path

location / {
        # your usual config ...
        # hack, set all cookies to secure, httponly and samesite (strict or lax)
        proxy_cookie_path / "/; secure; HttpOnly; SameSite=strict";
    }

答案2

我在不支持samesite属性的 Web 应用程序上遇到了类似的问题。我创建了与 @Beccari 解决方案类似的解决方法:

proxy_cookie_path ~^/(.+)$ "/$1; SameSite=none";

您必须将其放在适当的上下文中,在我的情况下是location。如果您需要像我的情况一样设置none值,请记住您还必须添加Secure属性以启用其他网站的第三方 cookie。

答案3

我认为更好的方法是使用 Nginx 1.19.3 版中的 proxy_cookie_flags

对于所有 Cookie 的使用:

proxy_cookie_flags ~ secure samesite=strict;

对于某些 cookie,您可以使用(或正则表达式):

proxy_cookie_flags one httponly;

查看更多文档:https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cookie_flags

相关内容