Mozilla刚刚发布了一个新工具来检查您的网站配置。observatory.mozilla.org
但是扫描正在抱怨Cookies (-10分):没有安全标志的会话cookie设置.
不幸的是,在我的nginx后面运行的服务只能在SSL直接终止时才能设置安全报头,而不是当SSL在nginx上终止时。因此,“安全”标志没有设置在cookie上。
是否可以以某种方式使用nginx将“安全”标志附加到cookie中?修改位置/路径似乎是可能的。
http://nginx.org/en/docs/http/ngx_http_代理_module.html#proxy_饼干_域名
http://nginx.org/en/docs/http/ngx_http_代理_module.html#proxy_饼干_路径
发布于 2016-09-02 15:02:38
我知道有两种方法可以做到这一点,这两种方法都不是很好。首先是像这样滥用proxy_cookie_path:
proxy_cookie_path / "/; secure";第二种方法是使用来自Header更多模块的more_set_headers指令,如下所示:
more_set_headers 'Set-Cookie: $sent_http_set_cookie; secure';这两种方法都会带来问题,因为它们盲目地添加项目。例如,如果上游设置了安全标志,您将最终向客户端发送如下所示的副本:
Set-Cookie: foo=bar; secure; secure;在第二种情况下,如果上游应用程序没有设置cookie,nginx将将其发送到浏览器:
Set-Cookie; secure;当然,这是双重的。
我认为这个问题需要解决,因为很多人都问过这个问题。在我看来,这样的指令是必要的:
proxy_cookie_set_flags * HttpOnly;
proxy_cookie_set_flags authentication secure HttpOnly;但遗憾的是,目前还不存在这样的情况:
发布于 2017-03-17 10:35:27
尝试使用nginx_饼干_标志_模块。它会解决你的问题。
免责声明:我是模块的作者。
https://unix.stackexchange.com/questions/306463
复制相似问题