在Nginx反向代理中,如何为cookie设置安全标志?


12

我正在使用nginx作为反向代理来提供纯HTTPS网站。因此,我希望将此站点的cookie标记为安全。但是后端服务器是http服务器,因此不会将安全标志设置为其cookie。如何修改Set-Cookie标头以添加安全标志?


在SO上被询问和回答。有关Tomcat7的nginx示例,请参见SO:stackoverflow.com/questions/19916906/…–
Joseph Lust

1
目前 尚无法实现此类覆盖,但存在有关proxy_cookie_secure以下问题/问题:trac.nginx.org/nginx/ticket/368,但尚未实现(问题很旧)。
地毯,

该第三方模块可以为您提供帮助。
Airis

Answers:


4

您也许可以让您的nginx代理修改后端创建的cookie并设置安全标志-有关灵感,请参阅如何在nginx反向代理中重写Set-Cookie的域部分?

但是我想,让后端创建cookie来设置安全标志的方法将是一个更好的解决方案。您如何做的是另一个故事(或问题:)。


4
它可以帮助您设置X-Forwarded-Proto标题并确保它被您的应用程序解释。这是一种常见的技术,还可以使混合的http / https应用程序根据协议进行适当的响应。
卢卡斯

4

我使用以下nginx配置代码:

# make cookie secure (case sensitive)
proxy_cookie_domain ~(?P<secure_domain>([-0-9a-z]+\.)?[-0-9a-z]+\.[a-z]+)$ "$secure_domain; secure";

当然,您可以使用FQDN代替正则表达式来使之动态化。


这只是响应还是请求和响应。当客户端发送设置了安全标志的请求时,nginx是否会剥离请求,以便Web服务器不会抱怨?
Tigran

客户端不会在Cookie标头中发回安全标志。
r_3

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.