【问题标题】:Rails save object to cookieRails 将对象保存到 cookie
【发布时间】:2011-01-11 17:07:24
【问题描述】:

如何序列化数组或对象,然后将其保存到 cookie 中?

cookies[:mydata] = serialize({
  :key1 => 'tralala',
  :key2 => 'hahaha'
})

谢谢!

【问题讨论】:

    标签: ruby-on-rails serialization cookies


    【解决方案1】:

    最近的 Rails 漏洞(尤其是涉及机架的漏洞)让我质疑我最初推荐的 Marshal.load 方法的安全性。

    请不要使用 is,因为它很危险并且may potentially allow remote code execution。我已将其从该答案中删除。

    虽然不那么灵活,但以下内容也应该可以工作:

    初始对象:

    my_object = {:k1 => 'v1', :k2 => 'v2'}
    

    保存:

    cookies[:my_data] = { 
      :value => my_object.to_json, 
      :expires => 4.years.from_now
    }
    

    阅读:

    my_object = JSON.parse(cookies[:my_data])
    

    【讨论】:

      猜你喜欢
      • 2011-07-04
      • 2015-11-08
      • 1970-01-01
      • 2017-09-23
      • 1970-01-01
      • 1970-01-01
      • 2013-09-16
      • 2011-10-15
      • 2014-01-26
      相关资源
      最近更新 更多