我有一个场景,我不需要在HTTP上设置会话,而只是在HTTPS页面上设置它.目前的问题是我们在HTTPS和HTTP之间共享会话字符串.
即如果您访问我们的HTTP页面,则会为您分配一个会话字符串(不安全).当您访问我们的某个HTTPS页面时,它使用相同的会话字符串.它们在两者之间共享.我们不希望人们能够跨未加密的连接窥探会话字符串.
有人可以指点我一些阅读,或者我可以实现这样的事情吗?甚至在哪里看 – 我有点难过.找不到多少
解决方法
rails会话数据默认存储在cookie中,听起来你只想使用SSL?
更新:尝试在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 }
设计生成cookie时,Devise应使用rails设置
原始答案
在你的config / initializers / devise.rb文件中应该有一行看起来像这样
# :secure => true in order to force SSL only cookies.
尝试添加到config.rememberable_options并重新启动rails – 注意:在开发模式中,这不是您想要的,您可能能够做到
secure_option = (Rails.env.development? || Rails.env.test?) ? false : true config.rememberable_options = { :secure => secure_option }
也可以看看:
> http://railscasts.com/episodes/356-dangers-of-session-hijacking
> https://github.com/plataformatec/devise/wiki/How-To:-Use-SSL-(HTTPS)