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

StackOverflow https://stackoverflow.com/questions/72242

  •  09-06-2019
  •  | 
  •  

Вопрос

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

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

Это было полезно?

Решение

Установите параметр "http_only" в хэше, используемом для установки файла cookie

например ,

cookies["user_name"] = { :value => "david", :httponly => true }

или, в Rails 2:

например ,

cookies["user_name"] = { :value => "david", :http_only => true }

Другие советы

Перечитайте ответ Лори:

Обратите внимание, что опция была переименована из :http_only Для :httponly (без подчеркивания) в какой-то момент.

В actionpack 3.0.0, то есть Ruby on Rails 3, все ссылки на :http_only ушли.

Это на какое-то время сбило меня с толку.

Просто установите для :http_only значение true, как описано в Журнал изменений.

Если у вас есть файл с именем 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"

Также rails позволяет вам установить следующие клавиши:

:истекает - Время, в течение которого истекает срок действия этого файла cookie, как объекта Time.

:безопасный - Передается ли этот файл cookie только на HTTPS-серверы.Значение по умолчанию равно false.

Я также написал патч, который включен в Rails 2.2, который по умолчанию использует сеанс CookieStore как http_only.

К сожалению, сессионные файлы cookie по-прежнему по умолчанию являются обычными файлами cookie.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top