Rails:在“会话”中存储数据是否安全?

时间:2011-03-29 10:34:19

标签: ruby-on-rails security ruby-on-rails-3 session

我想在session[:user_type]中存储当前登录用户的类型。选项包括:“admin”,“end_user”,“demo”(将来可能会添加更多用户类型)。

我想知道在Rails 3应用程序中这样做是否安全。

用户可以以某种方式将session[:user_type]从“demo”更改为“admin”吗?

2 个答案:

答案 0 :(得分:5)

这取决于您的会话商店 默认情况下,使用cookie作为会话存储,因此默认情况下,更改cookie的内容非常容易。

所以你可以:

  • 更改您的会话商店 config / initializers / session_store.rb并使用activerecord存储(因此它将存储在db中)或memcache存储。在github上还有很多插件可以让你使用redis,mongodb,...作为会话商店
  • 将此信息存储在您的数据库中,并在您的application_controller中使用before_filter访问cookie以获取当前用户ID并将整个用户对象放入变量@current_user

答案 1 :(得分:3)

相关问题