Ruby on rails 设计-如何设置会话cookies?

Ruby on rails 设计-如何设置会话cookies?,ruby-on-rails,security,session,devise,Ruby On Rails,Security,Session,Devise,我有一个场景,我不需要在HTTP上设置会话,而只需要在HTTPS页面上设置会话。目前的问题是,我们正在HTTPS和HTTP之间共享会话字符串 也就是说,如果您访问我们的HTTP页面,您将被分配一个会话字符串(不安全)。当您访问我们的HTTPS页面时,它使用相同的会话字符串。它们在双方都有。我们不希望人们能够在未加密的连接中窥探会话字符串 有人能告诉我一些阅读材料,或是关于我是如何做到这一点的文件吗?即使是去哪里看,我也有点不知所措。找不到太多的rails会话数据默认存储在Cookie中,听起来您

我有一个场景,我不需要在HTTP上设置会话,而只需要在HTTPS页面上设置会话。目前的问题是,我们正在HTTPS和HTTP之间共享会话字符串

也就是说,如果您访问我们的HTTP页面,您将被分配一个会话字符串(不安全)。当您访问我们的HTTPS页面时,它使用相同的会话字符串。它们在双方都有。我们不希望人们能够在未加密的连接中窥探会话字符串


有人能告诉我一些阅读材料,或是关于我是如何做到这一点的文件吗?即使是去哪里看,我也有点不知所措。找不到太多的

rails会话数据默认存储在Cookie中,听起来您想使用仅限SSL的Cookie

更新:尝试在
config/initializers/session_store.rb
文件中添加
secure:true
,即

secure_option = (Rails.env.development? || Rails.env.test?) ? false : true
YourApp::Application.config.session_store :cookie_store, { key: '_xxxx_session', secure: secure_option }
DeVICE在生成cookie时应使用rails设置


原始答案

config/initializers/designe.rb
文件中,应该有一行如下所示

 # :secure => true in order to force SSL only cookies.
尝试添加到config.rememberable_选项并重新启动rails-注意:在开发模式下,您可能不希望这样做

secure_option = (Rails.env.development? || Rails.env.test?) ? false : true
config.rememberable_options = { :secure => secure_option }
另见:


如果您想修改会话cookie,您必须在管理员回调中修改它们,请参见和


或者,您可以使用。RailsCast.

好吧,要么安全,要么不安全。你不能两全其美…我不知道你的意思-对会话非常陌生等。你是否也考虑过在整个应用程序中使用
https
?嗯,这个选项似乎没有改变任何东西。这只会改变可记忆的Cookie。我不希望通过HTTP发送任何会话。这有可能吗?我似乎想要这样的东西:看起来以前有一个
cookie\u选项
配置,也许它仍然存在?