如何在Ruby on Rails中的cookie上设置HttpOnly标志

时间:2008-09-16 13:36:35

标签: ruby-on-rails ruby

页面 Protecting Your Cookies: HttpOnly 解释了为什么制作HttpOnly cookie是一个好主意。

如何在Ruby on Rails中设置此属性?

5 个答案:

答案 0 :(得分:30)

在用于设置cookie的哈希中设置'http_only'选项

e.g。

cookies["user_name"] = { :value => "david", :httponly => true }

或者,在Rails 2中:

e.g。

cookies["user_name"] = { :value => "david", :http_only => true }

答案 1 :(得分:12)

Re Laurie的回答:

请注意,该选项在某个时候已从:http_only重命名为:httponly(无下划线)。

在actionpack 3.0.0中,即Ruby on Rails 3,对:http_only的所有引用都消失了。

那让我感动了一段时间。

答案 2 :(得分:6)

只需将{http_only设置为true,如changelog中所述。

答案 3 :(得分:3)

如果你有一个名为config / session_store.rb的文件,包括这一行(Rails 3+),那么它已经自动设置了。 config/initializers/session_store.rb

# Be sure to restart your server when you modify this file.
Rails.application.config.session_store :cookie_store, key: "_my_application_session"

还有rails允许您设置以下键:

:过期 - 此Cookie过期的时间,作为Time对象。

:安全 - 此Cookie是否仅传输到HTTPS服务器。默认值为false。

答案 4 :(得分:1)

我还编写了一个包含在Rails 2.2中的补丁,默认CookieStore会话为http_only。

不幸的是,会话cookie仍然是默认的常规cookie。