微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

配置 – Nginx从代理服务器向Cookie添加安全标记

Mozilla刚刚发布了一个新工具来检查您的网站配置.
observatory.mozilla.org

但扫描正在抱怨
Cookies(-10分):没有安全标志的会话cookie设置…

不幸的是,在我的Nginx后面运行的服务只能在SSL直接终止时才设置安全头,而不是在SSL终止Nginx时.因此,cookie上没有设置“安全”标志.

是否可以使用Nginx以某种方式将“安全”标志附加到cookie?修改位置/路径似乎是可能的.

http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cookie_domain

http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cookie_path

解决方法:

我知道有两种方法可以做到这一点,它们都不是很好.首先是像这样滥用proxy_cookie_path:

proxy_cookie_path / "/; secure";

第二个是使用Headers More模块中的more_set_headers指令,如下所示:

more_set_headers 'Set-Cookie: $sent_http_set_cookie; secure';

这些都可能引入问题,因为他们盲目地添加项目.例如,如果上游设置安全标志,您将最终向客户端发送一个副本,如下所示:

Set-Cookie: foo=bar; secure; secure;

在第二种情况下,如果上游应用程序没有设置cookie,Nginx将把它发送到浏览器:

Set-Cookie; secure;

当然,这是doubleplusungood.

我认为这个问题需要修复,因为很多人都会问过这个问题.在我看来,需要这样的指令:

proxy_cookie_set_flags * HttpOnly;
proxy_cookie_set_flags authentication secure HttpOnly;

但唉,目前还不存在:(

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐