页面 Protecting Your Cookies: HttpOnly 解释了为什么制作HttpOnly cookie是一个好主意。
如何在Ruby on Rails中设置此属性?
答案 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。