如何在Rails 2.1中的会话cookie上设置HttpOnly?

时间:2020-03-06 14:55:39  来源:igfitidea点击:

我注意到Rails 2.2(当前为edge)支持在会话cookie上设置HttpOnly。

有没有一种方法可以在Rails 2.1应用程序上进行设置而无需迁移到edge / 2.2?

解决方案

在cookie的options哈希中将http_only选项设置为true:

cookies['visits'] = { :value => '20', :http_only => true }

正如我们所指出的,它不受支持,但是我们当然可以用猴子补丁Rails来做我们想做的事情。实际上,在这种情况下直接修补Rails v.monkey-patch之间的差异很小,因为升级到2.2后,两者都将被删除/还原。

在这两种情况下,我们都可以通过直接应用补丁(对任何2.1 /边缘差异进行模化),或者通过在环境加载后从自己的代码中重新打开这些类使更改生效,来将应用的差异作为自己2.1补丁的指南。 。

我编写了一个猴子补丁,以从Rails 2.2的补丁中添加对Rails 2.1的支持。

除了Rails 2.1之外,我还没有进行其他测试,因此行驶里程可能会有所不同!