使用 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