我正在为WordPress编写表单生成器和处理插件。为了帮助打击垃圾邮件注册,我选择让用户在主注册页面上输入所有信息。提交后,他们将进入确认页面,在实际注册并将其放入数据库之前查看其信息。
我的问题是,在确认和完成注册过程之前,用户在短时间内查看其信息时,最安全的方式是存储用户的密码服务器端。
目前,我将所有用户的数据放入会话变量中,然后在成功注册后处理变量。在会话中保留密码是安全的,还是应该在页面上创建隐藏的表单字段来存储密码?
谢谢。
答案 0 :(得分:3)
除了在页面上直观显示外,使用隐藏字段可能是您可以选择的最差选项。
会话变量没有任何问题,如果您想更进一步,可以说如果您在检查/验证密码后不需要密码,请将其哈希然后将哈希值存储在会话中而不是明文密码中。如果您将其存储为哈希值,并且它只会持续一段时间(以一种已经相对安全的方式),直到客户完成您的UX流程,那么您再次取消设置在您将其发送到您的数据库之后,没有问题。
请注意,会话变量存在于服务器上,而不是客户端,因此它们与您在系统中保护的任何其他信息一样安全。如果您将密码存储在HTML中的隐藏字段中,这是客户端并且容易受到攻击,则表示反对。