在Ruby on Rails中,如何將會話cookie的httpOnly設置設置爲false?如何將會話cookie的HttpOnly設置設置爲false?
回答
我想通了。在/config/environment.rb
包括此代碼:
config.action_controller.session = { :httponly => false }
這是什麼版本的rails?我想在軌道3,並得到以下錯誤:未定義的方法'會議='的ActionController :: Base:類 – 2011-12-02 04:12:54
@Peter這是寫在版本2.3的RoR 3之前。它沒有與測試3. – kingjeffrey 2011-12-03 04:53:09
我提出了一個解決方法,在這裏:http://stackoverflow.com/questions/8351871/session-cookie-httponly-false-rails-3-1/8371839#8371839 – 2011-12-04 19:44:16
這是我用做它的Rails 3:
Testapp::Application.config.session_store :cookie_store, key: '_testapp_session', :domain => :all, :httponly => false
在Rails 4,你需要編輯config/initializers/session_store.rb
Rails.application.config.session_store :cookie_store,
key: '_my_app_session', httponly: false
Rails有它默認設置爲true。 我不建議去改變它,因爲它會設置你的cookies accessable從JS改變,如:document.cookie
在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", httponly: false
PSA:**不要在生產中這樣做**。 'httponly'標誌是爲了安全。這可能聽起來像是「不是https」,但它實際上意味着「JavaScript不可用」。 'httponly'與'secure'標誌兼容,這意味着「只通過https連接發送」。請參閱https://www.owasp.org/index.php/HttpOnly – 2017-05-10 19:06:47