2012-05-03 8 views
2

Я храню данные пользователя, такие как имя, пароль и адрес электронной почты, в вашем HttpSession с setAttribute.Безопасно хранить критические данные в HttpSession?

Я хочу знать, можно ли хранить важные данные в HttpSession.

+4

Зачем вам нужно хранить пароль в объекте HttpSession? – systempuntoout

+1

Нет никакой приемлемой причины для хранения простого пароля ** в любом месте **, будь то сеанс, файл cookie, база данных, кеш (кроме одного процессора: p) или что-то еще, что является не только короткоживущей переменной , – ThiefMaster

+0

У меня нет причин действительно сохранять пароль, но для хранения других пользовательских данных для быстрого доступа из jsp и el-expresion. но также может сохранять данные пользователя в компоненте. – mulax

ответ

2

Попробуйте хранить регистрационную информацию в одном из следующих хранилищ пользователей (проверки достоверности при входе в):

  • JDBC на основе In-памяти (например, это может быть файл XML) ,
  • LDAP-based.

Это еще не полный список вариантов проверки подлинности.

Вы должны хотя бы использовать SSL/HTTPS для входа и любых других конфиденциальных данных.

Посмотрите на эту статью: http://en.wikipedia.org/wiki/Session_hijacking

А вот хороший SO обсуждение по этому вопросу: What is the best way to prevent session hijacking?

Некоторые вопросы безопасности также упоминается здесь: What should every programmer know about web development?

+0

, но данные, хранящиеся в сеансе, никогда не выйдут из сервера, верно? – mulax

+0

@mulax См. Редактирование. –

0

Идеальная практика должна НИКОГДА сохранять пароли любыми средствами приложения. В идеале пароли необходимо сохранять зашифрованными в таблице пользователей БД, если вы используете аутентификацию на основе db или используете аутентификацию LDAP.

После успешной аутентификации вы можете хранить такие поля, как электронная почта и имя, в сеансе http. Лучше всего, чтобы имя пользователя сохранялось (которое уникально) в информации о сеансе и профиле, должно быть прочитано из базы данных на основе этого имени пользователя, выполнив чтение базы данных. может хранить эту информацию в файле cookie, чтобы облегчить повторное заполнение частых посетителей некоторой информацией.

Самое главное - НЕ сохранять пароли в скрытых переменных, куки или строки запроса во ВСЕХ.

любая конфиденциальная информация, которая ДОЛЖНА быть сохранена, должна находиться в СЕССИИ, но зашифрована.

Смежные вопросы