可以在会话变量中临时存储密码吗?

时间:2013-11-12 15:40:45

标签: ruby-on-rails devise

我正在尝试使用Devise在rails中实现多步骤表单。我计划将信息存储在会话变量中,以便从一个步骤持续到下一个步骤。我的问题是,是否可以将密码以纯文本形式存储在会话变量中,然后在使用表单完成后将其清除?

2 个答案:

答案 0 :(得分:0)

我不是安全方面的专家,但我的直觉告诉我这虽然可能不是一个好的解决方案。

更好的解决方案是:

在第1步中,您实际创建用户并保存密码,照常发送电子邮件。

在步骤2或更多步骤中,您将使用更多输入更新此用户在db中的记录。如果有任何不满意的地方,你甚至可以最终删除这个用户。

这是基于惯例而且比黑客更好。

答案 1 :(得分:0)

绝对不是。如果您阅读了rails指南,则有一个特定的要点:

  

客户端可以看到您在会话中存储的所有内容,因为它以明文形式存储(实际上是Base64编码的,因此未加密)。所以,当然,你不想在这里存储任何秘密。为防止会话哈希篡改,将从具有服务器端密钥的会话计算摘要并将其插入到cookie的末尾。

来自http://guides.rubyonrails.org/v3.2.21/security.html#session-storage