Насколько безопасен флеш-хэш? - PullRequest
2 голосов
/ 05 января 2011

Насколько безопасен флеш-хэш? Может ли пользователь легко увидеть значения, хранящиеся в нем, и ввести свои собственные значения?

Ответы [ 3 ]

6 голосов
/ 05 января 2011

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 - это быстрое хранилище значений ключей, чей конкретный вариант использования по сравнению с другими хранилищами значений ключей включает в себя сохранение состояния сеанса.

2 голосов
/ 17 июля 2016

FlashHash сохраняется и загружается в session["flash"] ( github ). Так что его безопасность напрямую зависит от настройки хранилища сеансов. Хранилище сеансов на основе файлов cookie является Rails по умолчанию.

  • В Rails 4, в зависимости от вашего config/secrets.yml, будет применяться следующее:
    • Если у вас установлено только secret_token, ваши куки будут подписаны, но не зашифрованы .
    • Если вы установили secret_key_base, ваши куки будут зашифрованы .

Даже если у вас есть зашифрованный файл cookie и хранилище сеансов AR или хранилище сеансов Redis, вы всегда сохраните session_id в файле cookie клиента, который может быть скопирован злоумышленником. Настройка файла cookie secure на веб-сайте https:// сделает его более безопасным.

0 голосов
/ 05 января 2011

Rails использует закодированный сеанс, поэтому я склонен сказать нет. Используйте Firebug, отправляйте запросы в приложение Rails и просматривайте файлы cookie:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...