Как установить для параметра HttpOnly файла cookie сеанса значение false?

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


person kingjeffrey    schedule 21.04.2010    source источник
comment
PSA: не делайте этого в рабочей среде. Флаг httponly используется для обеспечения безопасности. Может показаться, что это означает не https, но на самом деле это означает, что JavaScript недоступен. httponly совместим с флагом secure, что означает отправку только через соединения https. См. owasp.org/index.php/HttpOnly.   -  person Nathan Long    schedule 10.05.2017


Ответы (4)


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

Rails.application.config.session_store(
  :cookie_store,
  key: '_socializus_session',
  httponly: false,
)
person troelskn    schedule 12.07.2013
comment
Резонный вопрос, CodeDave. Вы передаете ключ :httponly со значением false. (Согласно другим ответам здесь - просто расположение кода для редактирования изменилось с environment.rb на инициализатор) - person troelskn; 05.05.2014

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

Testapp::Application.config.session_store :cookie_store, key: '_testapp_session', :domain => :all, :httponly => false
person sailor    schedule 28.12.2011

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

  config.action_controller.session = {
    :httponly => false
  }
person kingjeffrey    schedule 21.04.2010
comment
Для какой версии рельсов это было? Я пытаюсь использовать rails 3 и получаю следующую ошибку: неопределенный метод `session=' для ActionController::Base:Class - person Peter Ehrlich; 02.12.2011
comment
@Peter Это было написано до RoR 3 для версии 2.3. С 3 не тестировался. - person kingjeffrey; 03.12.2011
comment
Я нашел обходной путь здесь: stackoverflow.com/questions/8351871/ - person Peter Ehrlich; 04.12.2011

В Rails по умолчанию установлено значение true. Я не рекомендую изменять его, потому что он установит файлы cookie, доступные для изменения из JS, например: document.cookie

В Rails 3+ вы можете изменить конфигурацию файлов cookie с 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
person ilgam    schedule 07.11.2016