我有一個場景,我不需要在HTTP上設置會話,而只需在HTTPS頁面上設置會話。目前的問題是我們在HTTPS和HTTP之間共享會話字符串。設計 - 它如何設置會話cookie?
I.e.如果您訪問我們的HTTP頁面,則會爲您分配會話字符串(不安全)。當您訪問我們的某個HTTPS頁面時,它將使用相同的會話字符串。它們在兩者之間共享。我們不希望人們能夠通過未加密的連接監聽會話字符串。
有人可以指點一些閱讀,或圍繞我如何實現這樣的東西嗎?甚至在哪裏看 - 我有點難住。找不到太多
我有一個場景,我不需要在HTTP上設置會話,而只需在HTTPS頁面上設置會話。目前的問題是我們在HTTPS和HTTP之間共享會話字符串。設計 - 它如何設置會話cookie?
I.e.如果您訪問我們的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 }
產生餅乾
當設計應採用導軌設置原來答案在你config/initializers/devise.rb
文件
應該看起來像這樣的一條線
# :secure => true in order to force SSL only cookies.
嘗試添加到config.rememberable_options並重新啓動軌道 - 注:是不是你會想發展模式,你也許可以做到
secure_option = (Rails.env.development? || Rails.env.test?) ? false : true
config.rememberable_options = { :secure => secure_option }
還看到:
如果要修改你將不得不修改它們的監獄長回調會話cookie看到this thread和this blog post
或者,你可以使用separate cookie。 RailsCast here。
嗯,要麼它是安全的,要麼不是。你不可能有兩種方法...... – ircmaxell
我不確定你的意思 - 非常新的會議等 –
你有沒有考慮過使用'HTTPS'爲整個應用程序? – house9