Подтвердить что ты не робот

Как установить флаг HttpOnly в файл cookie в Ruby on Rails

Страница Защита ваших файлов cookie: HttpOnly объясняет, почему создание файлов HttpOnly - хорошая идея.

Как установить это свойство в Ruby on Rails?

4b9b3361

Ответ 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.