Сессия в рельсах и безопасности - PullRequest
0 голосов
/ 18 декабря 2011

У меня есть действительно особая функция входа в мое приложение, поэтому вместо плагинов я использую свой собственный код.

В моем контроллере у меня есть что-то вроде

def login
  ...
  session[:customer_id] = id
end

Я использую CookieStore (по умолчанию). Так это безопасно? Что если кто-то отредактирует куки? Может ли он подражать кому-то с другим идентификатором?

1 Ответ

1 голос
/ 18 декабря 2011

Для обеспечения целостности данных в файл cookie включен дайджест сообщения: пользователь не может изменить свой user_id, не зная секретного ключа, включенного в хеш. Новые приложения создаются с предварительно сгенерированным секретом в config / environment.rb. Установите свои собственные для старых приложений, которые вы обновляете.

См. http://api.rubyonrails.org/v2.3.8/classes/ActionController/Session/CookieStore.html. Обратите также внимание на это предложение:

Если у вас более 4 КБ данных сеанса или не хотите, чтобы ваши данные были видны пользователю , выберите другое хранилище сеансов.

В вашей ситуации это, безусловно, не имеет значения, и вы можете использовать CookieStore без страха.

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