2010-04-21 5 views
16

В Ruby on Rails, как установить для параметра httpOnly cookie сеанса значение false?Как установить для параметра HttpOnly cookie сеанса значение false?

+0

PSA: ** не делайте этого в производстве **. Флаг 'httponly' существует для обеспечения безопасности. Может показаться, что это означает «не https», но это на самом деле означает «недоступно для JavaScript». 'httponly' совместим с флагом' secure', что означает «только отправлять по https-соединениям». См. Https://www.owasp.org/index.php/HttpOnly –

ответ

7

Я понял это. В /config/environment.rb включить этот код:

config.action_controller.session = { :httponly => false }

+0

Для какой версии рельсов это было? Я пытаюсь использовать rails 3 и получить следующую ошибку: undefined method 'session = 'для ActionController :: Base: Class –

+0

@Peter Это было написано до RoR 3 для версии 2.3. Он не был протестирован с помощью 3. – kingjeffrey

+0

Я сделал обходной путь, здесь: http://stackoverflow.com/questions/8351871/session-cookie-httponly-false-rails-3-1/8371839#8371839 –

6

Это, как я сделал это с Rails 3:

Testapp::Application.config.session_store :cookie_store, key: '_testapp_session', :domain => :all, :httponly => false 
7

В Rails 4, вам нужно отредактировать config/initializers/session_store.rb

Rails.application.config.session_store :cookie_store, 
    key: '_my_app_session', httponly: false 
+4

Отредактируйте его, чтобы ? – CoderDave

+3

Разумный вопрос, CodeDave. Вы передаете ключ ': httponly' со значением' false'. (В соответствии с другими ответами здесь - это просто, что расположение редактируемого кода изменилось с «environment.rb» на инициализатор) – troelskn

0

Rails имеет по умолчанию он установлен в значение true. я не рекомендую, чтобы изменить его, потому что это сделает вас печенье, доступную для изменения от 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 
Смежные вопросы