我注意到 Rails 2.2(当前为 edge)支持在 session cookie 上设置 HttpOnly。
有没有办法在 Rails 2.1 应用程序上设置它而不移动到 edge/2.2?
我注意到 Rails 2.2(当前为 edge)支持在 session cookie 上设置 HttpOnly。
有没有办法在 Rails 2.1 应用程序上设置它而不移动到 edge/2.2?
好吧,正如您所指出的,它不受支持,但是您当然可以猴子补丁Rails 来做您想做的事情。实际上,在这种情况下,直接修补 Rails 与猴子修补之间的区别非常小,因为当您升级到 2.2 时,两者都会被删除/恢复。
在这两种情况下,您都会将应用的差异视为自己修补 2.1 的指南 - 通过直接应用补丁(以任何 2.1/edge 差异为模),或者通过在环境加载后从您自己的代码中重新打开这些类以应用变化。
我已经编写了一个猴子补丁来将这种支持添加到 Rails 2.1,来自 Rails 2.2 的补丁。
我没有在 Rails 2.1 以外的任何东西上测试过,你的里程可能会有所不同!
http_only
在 cookie 的选项哈希中将选项设置为 true:
cookies['visits'] = { :value => '20', :http_only => true }