如何序列化数组或对象,然后将其保存到cookie中?
cookies[:mydata] = serialize({
:key1 => 'tralala',
:key2 => 'hahaha'
})
THX!
答案 0 :(得分:15)
最近的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])