在HttpSession中存储关键数据是否安全?

时间:2012-05-03 19:40:18

标签: java google-app-engine

我使用HttpSessionsetAttribute中的用户数据(如姓名,密码和电子邮件)存储起来。

我想知道在HttpSession中存储关键数据是否安全。

2 个答案:

答案 0 :(得分:1)

尝试将登录信息存储在以下某个用户存储库中(在登录时检查有效性):

  • 内存中(例如,它可能是一个xml文件),
  • JDBC为主,
  • 基于LDAP的。

这不是身份验证选项的完整列表。

您至少应该使用SSL / HTTPS进行登录和任何其他敏感数据。

看一下这篇文章:http://en.wikipedia.org/wiki/Session_hijacking

以下是关于该问题的讨论:What is the best way to prevent session hijacking?

此处还提到了一些安全问题:What should every programmer know about web development?

答案 1 :(得分:0)

理想的做法是永远不要在任何应用程序中保存密码。理想情况下,如果使用基于数据库的身份验证或使用LDAP身份验证,则需要在DB的用户表中将密码加密保存。

成功通过身份验证后,您可以在http会话中保留电子邮件和姓名等字段。最好是在会话中保留用户名(这是唯一的),并且必须通过执行数据库读取,基于此用户名从数据库中读取配置文件信息。 可以将这些信息保存在cookie中,以便利用某些信息重新填充频繁的访问者。

最重要的是不要将密码保存在隐藏变量,cookie或查询字符串中。

必须保留的任何敏感信息必须在会话中加密。