如何将会话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