Rails по умолчанию будет хранить сессию в cookie.Состояние сеанса хранится в хэше, который Marshal.dump
'd и Base64.encode64
' d находится в строке для отправки в браузер в заголовке Set-Cookie
.Кроме того, сеанс криптографически подписан вашим Rails.application.config.secret_token
, который вы можете найти в config/initializers/secret_token.rb
.
Каждый может прочитать состояние сеанса, включая хэш flash
.Но подделать его было бы невозможно (если бы у злоумышленника не было ключа).Однако защита от атак воспроизведения в состоянии сеанса отсутствует (когда злоумышленник использует cookie сеанса, который он видел ранее и содержит значение, которое он хочет отправить на сервер сейчас).
Если атака воспроизведенияпроблема, или если у пользователей есть возможность прочитать состояние сеанса, это проблема, вам следует использовать хранилище сеансов AR или, возможно, лучше использовать хранилище сеансов Redis.Redis - это быстрое хранилище значений ключей, чей конкретный вариант использования по сравнению с другими хранилищами значений ключей включает в себя сохранение состояния сеанса.