我正在尝试使用 Devise 在 Rails 中实现多步表单。我计划将信息存储在会话变量中,以便从一个步骤持续到下一步。我的问题是,是否可以将密码以纯文本形式存储在会话变量中,然后在完成表单后将其清除?
问问题
404 次
2 回答
0
我不是安全专家,但我的直觉告诉我这不是一个好的解决方案,尽管可能。
更好的解决方案是:
在第 1 步中,您实际创建用户并像往常一样保存密码和电子邮件。
在第 2 步或更多步中,您使用进一步的输入更新该用户在 db 中的记录。如果有任何不满意的地方,您甚至可以最终删除该用户。
这是基于约定的,比 hack 更好。
于 2013-11-12T15:52:12.310 回答
0
绝对不。如果您阅读 rails 指南,有一个关于此的具体要点:
客户端可以看到您在会话中存储的所有内容,因为它以明文形式存储(实际上是 Base64 编码的,因此未加密)。所以,当然,你不想在这里存储任何秘密。为了防止会话哈希篡改,从会话中计算出一个摘要,其中包含服务器端的秘密,并插入到 cookie 的末尾。
来自http://guides.rubyonrails.org/v3.2.21/security.html#session-storage
于 2015-01-29T22:30:18.230 回答