设计 - 如何设置会话cookie?

Dom*_*mra 6 security session ruby-on-rails devise

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

即如果您访问我们的HTTP页面,则会为您分配一个会话字符串(不安全).当您访问我们的某个HTTPS页面时,它使用相同的会话字符串.它们在两者之间共享.我们不希望人们能够跨未加密的连接窥探会话字符串.

有人可以指点我一些阅读,或者我可以实现这样的事情吗?甚至在哪里看 - 我有点难过.找不到多少

hou*_*se9 9

rails会话数据默认存储在cookie中,听起来你只想使用SSL?

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

secure_option = (Rails.env.development? || Rails.env.test?) ? false : true
YourApp::Application.config.session_store :cookie_store, { key: '_xxxx_session', secure: secure_option }
Run Code Online (Sandbox Code Playgroud)

设计生成cookie时,Devise应使用rails设置


原始答案

在你的config/initializers/devise.rb文件中应该有一行看起来像这样

 # :secure => true in order to force SSL only cookies.
Run Code Online (Sandbox Code Playgroud)

尝试添加到config.rememberable_options并重新启动rails - 注意:在开发模式中,这不是您想要的,您可能能够做到

secure_option = (Rails.env.development? || Rails.env.test?) ? false : true
config.rememberable_options = { :secure => secure_option }
Run Code Online (Sandbox Code Playgroud)

也可以看看: