2010-09-02 4 views
2

Я столкнулся с этим примером с страницы безопасности Ruby (http://guides.rubyonrails.org/security.html). Он задает этот сценарий:Простой вопрос о сеансе

  • Пользователь получает кредиты, сумма хранится в сеансе (что в любом случае плохое, но мы сделаем это для демонстрационных целей).
  • Пользователь покупает что-то.
  • Его новый, более низкий кредит будет сохранен в сеансе.
  • Темная сторона пользователя заставляет его перенести файл cookie с первого шага (который он скопировал) и заменить текущий файл cookie в браузере.
  • У пользователя есть кредит.

Я немного смущен, так как я всегда понимал, что значение cookie сеанса является просто идентификатором для состояния сеанса, управляемого сервером. В этом примере говорится, что состояние файла cookie контролирует состояние сеанса и что состояния сеанса на сервере поддерживаются с течением времени.

Может кто-нибудь объяснить это? Благодарю.

+0

Звучит неправильно для меня тоже. –

+0

Я не знаю, как сеанс реализован в Ruby on Rails. Но я бы сказал, что это сценарий атаки при использовании cookie вместо сеанса, где данные хранятся на стороне клиента, а не на стороне сервера. – Gumbo

ответ

2

Это верно для сеансов на стороне сервера, однако этот пример из 2.6 Replay Attacks для сеансов CookieStore. CookieStore хранит то, что обычно сохраняется в сеансе на стороне сервера в файле cookie, и, следовательно, на клиенте, что делает его пристрастием к повторной атаке в примере.

+0

ОК, так что тогда мое понимание регулярного состояния сеанса правильное? Благодарю. – Ryan

+0

Да, точно вправо. –

Смежные вопросы