39

保护您的 Cookie:HttpOnly页面解释了为什么制作 HttpOnly cookie 是一个好主意。

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

4

5 回答 5

38

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

例如

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

或者,在 Rails 2 中:

例如

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

于 2008-09-16T14:04:18.010 回答
12

Re Laurie 的回答:

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

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

这让我有一段时间。

于 2010-12-17T11:42:53.693 回答
7

只需将 :http_only 设置为 true,如更改日志中所述。

于 2008-09-16T13:39:53.763 回答
4

如果您有一个名为 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 还允许您设置以下键:

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

:secure -此 cookie 是否仅传输到 HTTPS 服务器。默认为假。

于 2016-11-07T21:13:31.320 回答
1

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

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

于 2008-10-03T18:49:19.733 回答