在RoR中的会话cookie上设置“安全”标志,甚至通过HTTP

在Rails应用程序中,当通过HTTPS发送以确保cookie不会通过非HTTP连接泄露时,可以轻松地将会话cookie设置为包括secure cookie属性。

但是,如果Rails应用程序不使用HTTPS,而只使用HTTP,则它似乎根本不设置cookie。
虽然这确实有意义,但在这种情况下,有一个单独的前端负载均衡器,它负责终止SSL连接。 从LB到Rails应用程序,连接只是HTTP。

即使不使用HTTPS,如何强制Rails应用程序设置secure cookie?

根据定义,安全cookie不会通过非安全连接发送。

终止SSL上游是很常见的,但是您需要传递某些头字段,以便Rails知道并且可以做正确的事情。

这是一个文档 ,它解释了nginx非常详细的配置。 搜索“设置标题”以跳转到描述您需要通过的特定标题的部分。

使用此配置有一些安全注意事项,例如,如果终止SSL的设备与Rails主机不在同一个安全LAN上,那么您就有一个漏洞。