ruby-on-rails - rails : Is that safe to store data in "session"?

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

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

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

用户可以以某种方式更改 session[:user_type]从“演示”到“管理员”?

最佳答案

这取决于您的 session 存储。
默认情况下,使用 cookie 作为 session 存储,因此默认情况下更改 cookie 的内容并不安全。

所以你可以:

  • 更改您的 session 存储
    config/initializers/session_store.rb 并使用 activerecord 存储(因此它将存储在 db 中)或 memcache 存储。 github 上也有很多插件可以让你使用 redis、mongodb、...作为 session 存储
  • 将此信息存储在您的数据库中,并在您的 application_controller 中使用 before_filter 访问 cookie 以获取当前用户 ID 并在变量中获取整个用户对象 @current_user
  • 关于ruby-on-rails - rails : Is that safe to store data in "session"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5471135/

    相关文章:

    mysql - 如何使用 ActiveRecord 进行多项计算

    ruby-on-rails - ruby 类变量是否在 Rails 请求之间被清除?

    ruby-on-rails - ActiveRecord/Ruby on Rails 中 update_all() 的返回值是多少?

    ruby-on-rails - 什么样的数据类型可以四舍五入?

    java - 请帮助-卡住无效 key 异常

    c# - C# AES 算法何时会符合 FIPS 标准?

    ruby-on-rails - rails 3 : jopenssl load error

    C# 安全风险

    ruby-on-rails - 将 PG 转储导入 Sqlite3

    javascript - 使用 Jquery append 在点击时呈现部分