Как установить флаг HttpOnly в файл cookie в Ruby on Rails
Страница Защита ваших файлов cookie: HttpOnly объясняет, почему создание файлов HttpOnly - хорошая идея.
Как установить это свойство в Ruby on Rails?
Ответы
Ответ 1
Установите параметр "http_only" в хеше, используемый для установки файла cookie
например.
cookies["user_name"] = { :value => "david", :httponly => true }
или, в Rails 2:
например.
cookies["user_name"] = { :value => "david", :http_only => true }
Ответ 2
Re Laurie отвечает:
Обратите внимание, что в какой-то момент этот параметр был переименован из :http_only
в :httponly
(без подчеркивания).
В actionpack 3.0.0, то есть Ruby on Rails 3, все ссылки на :http_only
исчезли.
Это бросило меня на время.
Ответ 3
Просто установите: http_only в true, как описано в changelog.
Ответ 4
Я также написал патч, который включен в Rails 2.2, который по умолчанию считает сессию CookieStore http_only.
К сожалению, файлы cookie сеанса по-прежнему по умолчанию являются обычными куки файлами.
Ответ 5
Если у вас есть файл с именем config/session_store.rb, включающий эту строку (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"
Также рельсы позволяют устанавливать следующие клавиши:
: expires - время, в течение которого этот файл cookie истекает, как объект Time.
: secure. Будет ли этот файл cookie передаваться только на HTTPS-серверы. Значение по умолчанию - false.