Rails: безопасно ли хранить данные в «сессии»? - PullRequest
6 голосов
/ 29 марта 2011

Я думал сохранить тип текущего пользователя, вошедшего в систему, в session[:user_type].Варианты: «admin», «end_user», «demo» (может добавить больше пользовательских типов в будущем).

Интересно, безопасно ли это делать в приложении на Rails 3?

Может ли пользователь как-то изменить session[:user_type] с "demo" на "admin"?

Ответы [ 2 ]

5 голосов
/ 29 марта 2011

Это зависит от вашего магазина сеансов.
По умолчанию файлы cookie используются в качестве хранилища сеансов, поэтому по умолчанию это небезопасно, изменить содержимое файла cookie довольно просто.

Так что вы можете либо:

  • изменить свой магазин сеансов в config / initializers / session_store.rb и использовать хранилище activerecord (поэтому оно будет храниться в БД) или хранилище memcache. На github также есть множество плагинов, позволяющих использовать redis, mongodb, ... в качестве хранилища сессий
  • сохраните эту информацию в вашей БД и у вас в файле application_controller будет файл before_filter, который обращается к cookie, чтобы получить текущий идентификатор пользователя и получить весь объект пользователя в переменной @ current_user
3 голосов
/ 29 марта 2011

Посмотрите в этой теме: Текущая практика сессий Rails

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